У меня есть аудио-элемент в моем HTML, единственная цель которого - сделать объявление для слепых пользователей через программу чтения с экрана. Это DIV, но он невидим для обычных пользователей.
Чтобы что-то объявить, нужно создать элемент с role=alert
(другого способа сделать это нет, например, нет JS-функции, которая могла бы напрямую «разговаривать» с читателем):
<!-- This element can be dynamically added OR shown (via JS) to make a Screen Reader announcement -->
<div role="alert">This will be announced to Screen Readers.</div>
Однако я не могу сделать так, чтобы этот элемент «аудио-помощник» был виден обычным пользователям.
1) Не могу использовать display: none
; -> Программа чтения с экрана не подберет его
2) Невозможно использовать visibility: hidden;
-> Программа чтения с экрана не подберет его
3) Невозможно использовать opacity: 0;
->, поскольку занято место, макет должен быть точно таким же
Я нашел это решение: https://stackoverflow.com/a/25339638/1005607
div {
position: absolute;
left: -999em;
}
Это отлично работает, это решает мою проблему. Но это что-то вроде взлома. Я хотел спросить: есть ли более стандартный способ решения этой проблемы?