Доступность Фокус маршрутизации Ionic 4 находится в нижней части страницы

#javascript #angular #accessibility #ionic4

Вопрос:

у меня есть эта действительно раздражающая проблема в моем Ionic 4 приложении, когда я меняю страницу, фокус чтения с экрана находится в нижней части страницы, что означает, что моим пользователям придется просмотреть содержимое, чтобы попасть в мой main раздел содержимого.

я провел некоторое исследование, и, похоже, это проблема с Angular документацией по угловым возможностям

Здесь они предлагают вам сосредоточиться на main содержании.

Однако, когда я пытаюсь это сделать, используя:

   ionViewDidEnter() {
    const mainHeader = document.querySelector('#mainContent');
    if (mainHeader) {
      (mainHeader as HTMLElement)?.focus();
    }
  }
 

на самом деле это ничего не дает.

У кого-нибудь была подобная проблема и знаете, как я мог бы ее исправить?

Редактировать

Я также пробовал с viewChild :

   @ViewChild('mainPage') mainContent: ElementRef;    
  ngOnInit() {
    this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {
      this.mainContent.nativeElement.focus();
    });
  }
 

И установка mainPage элемента tabIndex=0 :

 <div #mainPage tabindex="0"><ion-router-outlet main></ion-router-outlet></div>
 

И все же никакого фокуса.

Комментарии:

1. Есть ли что-то, что он разрабатывает?

2. @ДавидВеквейт нет, к сожалению, нет

3. Может ли это быть проблемой со временем? Является ли установка фокуса слишком ранней, а затем то, что приводит к тому, что фокус оказывается внизу страницы, снова перемещает фокус. Должно быть легко протестировать, просто добавьте 2-секундную задержку для изменения фокуса и посмотрите, работает ли это. Если это так, то вам просто нужно найти правильное место для подключения, чтобы оно меняло фокус после того, что делает Angular, чтобы сломать его.