Что такое контекст role = "banner" - PullRequest
2 голосов
/ 11 июля 2019

На странице примеров W3C ARIA для Banner Landmark этот текст находится на вкладке HTML Techniques : (выделите мое)

  • Элемент HTML5 header определяет ориентир banner, когда его контекстом является элемент body.
  • Элемент HTML5 header равен , а не считается ориентиром banner, когдаэто потомок любого из следующих элементов:
    • article
    • aside
    • main
    • nav
    • section

Я понимаю, что заголовок в этом коде не будет автоматически иметь роль баннера:

<body>
  <main>
    <article>
      <header><!-- ... --></header>
    </article>
  </main>
</body>

Но как насчет заголовка, вложенного ни в один из элементов, описанных выше, тогда как не является прямым потомком элемента body?
Автоматически ли установлен заголовок в этом кодероль баннера или нет?

<body>
  <div>
    <header><!-- ... --></header>
    <main></main>
  </div>
</body>

Что является контекстом элемента / элемента header?
Является ли это только прямым родителем элемента?
Или это ближайшийэлемент предка, который устанавливает контекст?

Я не смог найти подсказки в Документации по ролям на w3.org. Слово context упоминалось много раз на этой странице, но не втот же контекст (каламбур), как указано на странице примеров.

1 Ответ

2 голосов
/ 15 июля 2019

Официальная <header> спецификация элемента * дает немного больше разъяснений, хотя вам, возможно, придется прочитать ее несколько раз, прежде чем она попадет внутрь.

Когда ближайший предок <header> элемента корень секционирования является элементом <body> и не является потомком элемента <main> или элемента секционирования, то, что <header> относится к элементу <body> и представляет собой в основном сайт-ориентированный контент или вводный контент для страницы в целом.

Затем он продолжает:

Вспомогательная технология может передавать пользователям семантику элемента заголовка, когда он применяется ко всей странице. Эта информация может дать подсказку о типе контента. Например, роль элемента, который в данном случае является «баннером», может быть объявлена ​​программным обеспечением для чтения с экрана, когда пользователь переходит к элементу заголовка , который ограничен элементом body .

Так что, если ваш <header> не ограничен <body>, программа чтения с экрана, скорее всего, не будет объявлять заголовок как ориентир баннера, но это зависит от программного обеспечения для чтения с экрана.

...