Семантическое использование <nav>в HTML5 с элементом формы поиска - PullRequest
8 голосов
/ 05 марта 2012

Определение W3C кажется немного расплывчатым, когда дело доходит до тега <nav>:

Элемент nav представляет раздел страницы, который ссылается на другие страницы илик частям на странице: раздел с навигационными ссылками.

Не все группы ссылок на странице должны быть в элементе навигации - этот элемент предназначен главным образом для разделов, состоящих из основных блоков навигации.В частности, нижние колонтитулы обычно имеют краткий список ссылок на различные страницы сайта, такие как условия обслуживания, домашняя страница и страница с информацией об авторских правах.Для таких случаев достаточно одного элемента нижнего колонтитула;хотя в таких случаях можно использовать элемент nav, он обычно не нужен.

Пользовательские агенты (например, программы чтения с экрана), предназначенные для пользователей, которым может быть полезна навигационная информация, которая не указывается при первоначальном отображении, или ктоможет извлечь выгоду из немедленной доступности навигационной информации, может использовать этот элемент как способ определения того, какой контент на странице первоначально пропустить и / или предоставить по запросу.

На основе очень строгой интерпретации ихопределение и то, с чем я столкнулся при проверке, похоже, что <nav> должен содержать только элементы списка.Однако не следует ли считать поиск формой навигации по серии страниц?

Хотя я понимаю, что его основное использование предназначено для пользовательских агентов, все еще представляется довольно избыточным иметь <nav> перед тегом <ul>, если первый действует только как контейнер для второго.Было бы более разумно, если бы <nav> мог содержать другие элементы, связанные с навигацией, не ограничиваясь списком ссылок.

Например:

<nav role="navigation">
  <form action="http://google.com/search" method="get">
    <fieldset role="search">
       <input type="hidden" name="q" value="site:mysite.com" />
       <input class="search" type="text" name="q" results="0" placeholder="Search"/>
    </fieldset>
  </form>

  <ul class="top-navigation">
     <li><a href="/">Home</a></li>
     <li><a href="/about.html">About Me</a></li>
     <li><a href="/archive.html">Archives</a></li>
  </ul>
</nav>

Помимо проверки, это не так?допустимое использование <nav>?Каковы будут последствия для менее заинтересованного в проверке пользователя, чем обеспечение того, чтобы программы чтения с экрана и другие инструменты доступности могли правильно отображать страницу?

1 Ответ

7 голосов
/ 05 марта 2012

Элемент nav должен использоваться для основных элементов навигации сайта, а не только для всех элементов навигации.Он также не должен содержать ul, но, поскольку в большинстве случаев он содержит список, это часто имеет смысл, но не является обязательным.

Если ваш поиск является основным методом навигацииВаш сайт, затем непременно поместите его в nav, хотя из приведенного выше примера список выглядит как основная навигация, а не как ваш поиск.

Я немного написал об использованиитег nav в для навигации или не для навигации? , хотя в нем не упоминается поиск, что является интересным наблюдением.

...