#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, чтобы сломать его.