визуально скрыт (см.
Что такое sr-only в Bootstrap 3? для получения информации о классе "sr-only"), но доступно для программ чтения с экрана.
Обновление 14 января 2019
Если программа чтения с экрана (будь то VoiceOver, как указано в OP, или JAWS или NVDA) не меняет языки с aria-labelledby
, то вам придется встроить «скрытый» текст (class="sr-only"
) внутрь
<button>
<div class="sr-only">
<span lang="en">email</span>
<span lang="de">schreiben</span>
</div>
</button>
Хотя я только что попробовал простой пример и VO не сменил языки. Это звучит как ошибка Apple. Я также попытался поменять местами слова, если VO просматривал первый языковой атрибут и использовал его для всей кнопки:
<button>
<div class="sr-only">
<span lang="de">schreiben</span>
<span lang="en">email</span>
</div>
</button>
Но это имело тот же результат. Вся кнопка была прочитана на английском языке.
Если я поставлю метку как обычный текст,
<div>
<span lang="en">email</span>
<span lang="de">schreiben</span>
</div>
VO работает правильно и читает первое слово на английском, а второе на немецком.