Ария знаковые роли, только для контейнеров? - PullRequest
1 голос
/ 26 июля 2011

Я реализую роли ориентира ARIA в существующем HTML-макете. Чем меньше кода мне нужно изменить, тем лучше. Все примеры, которые я нашел, используют ориентир для всего контейнера. например.

<div id="content" role="main">
<p>....</p>
<ul>...</ul>
</div>

В моих шаблонах не всегда есть контейнер, окружающий контент, который я не хочу помечать как ориентир ARIA. Иногда для реализации было бы проще не пометить весь контейнер, а только установить отметку в начале соответствующего содержимого.

Так бы это выглядело так:

<div role="main"></div>
<p>....<p>
<ul>...</ul>

С семантической точки зрения программа чтения с экрана или другое программное обеспечение не знает точно, когда заканчивается содержимое или, возможно, считает, что содержимое пустое. Может ли это быть проблемой?

Я тестировал его с помощью программы чтения с экрана JAWS, похоже, он ведет себя так же. JAWAS ищет только начало ориентира. Это не ходят? Или я мог бы использовать это таким образом?

Ответы [ 3 ]

0 голосов
/ 25 января 2012

Согласен, это просто отмечает начало контента. В таком случае, вместо того, чтобы создавать пустой div, почему бы просто не поместить role = "main" в первый элемент, который вы рассматриваете для запуска основного контента? В приведенном выше примере это будет тег <p>.

Другой способ, которым можно использовать role = "main", заключается в предоставлении привязки для ссылки "перейти к основному содержанию". Это также поддерживает подход к размещению роли в теге <p>.

Короче говоря, куда вы хотите, чтобы они прыгали, если они используют ссылку пропуска или используют кратчайший путь в вспомогательной технологии? Я вижу преимущества только в улучшенной навигации, она считается «знаковой» ролью ... и это для меня обеспечивает ориентир.

0 голосов
/ 15 апреля 2013

Я ни в коем случае не эксперт по WAI-ARIA (узнаю позже, хотя), но я понимаю, что читатели действительно понимают содержание, содержащееся в помеченном ролями регионе, а не только место, где отмечен регион начинается.

Кроме того, чтобы цитировать от здесь :

Вероятно, наиболее важным правилом применения ориентиров является обеспечение того, чтобы весь контент находился в ориентире, чтобы ни один контент не был потерян. Таким образом, пользователь программы чтения с экрана может безопасно использовать навигацию по ориентирам, не пропуская контент.

Для этого вам может понадобиться изменить ваши шаблоны больше, чем вы ожидали.

0 голосов
/ 27 июля 2011

Ну, здесь происходит пара вещей.

Во-первых, хотя было бы неплохо, чтобы программы чтения с экрана вели себя одинаково и вели себя одинаково, мой опыт показывает, что это больше похоже на войны браузеров, поэтому использование role = "main" будет по-разному для разные читатели и не обязательно все, что полезно для вас.

Кстати, вы правы - со стороны какого-либо атрибута роли нет признания в отношении того, когда заканчивается контент, и это тот случай, когда все, кого я видел, поддерживают ARIA до сих пор (и есть только мало).

Итак, наконец, мой совет - я думаю, вы должны использовать другую роль. Роль региона гораздо более общая, но все же поможет пользователю определить, где находится важный контент. С другой стороны, если вы хотите сделать его действительно универсальным и использовать его для чтения с нескольких экранов, отбросьте концепцию ролей и добавьте скрытый тег заголовка h2, который говорит, что вы хотите назвать. Хотя это и не модно, но гарантированно сработает, и никто в сообществе a11y вообще не станет об этом кричать.

Итак, используйте общую роль, такую ​​как регион, чтобы пометить ее, или, что еще лучше, полностью отбросьте идею роли и вернитесь к стандартному тегу h2 для равномерной совместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...