2015-08-06 27 views
5

To pytanie dotyczy struktury zarysu dokumentu, ponieważ dotyczy nagłówków w elemencie <nav>. To nie jest pytanie o walidację.Element nawigacji bez nagłówka - zarys dokumentu

Kiedy potwierdzić jedną ze stron do mojej aplikacji sieci web i sprawdź pole z napisem „Zarys dokument” kontur obejmuje to:

[NAV elementem bez nagłówka]

Nie chcę dodawać nagłówka do mojego elementu nav, ponieważ będzie on wydawać się nieistotny dla użytkownika aplikacji, w kontekście mojej nawigacji (jest to element nav dla stronicowania podsekcji strony); ale chcę mieć dobrze zorganizowany zarys dokumentu.

Więc moje pytanie jest wieloczęściowy:

  • Dlaczego zarys w tym jest?
  • Jaki jest właściwy sposób dodawania nagłówka do elementu nav?
  • Czy konieczne jest dodanie nagłówka do elementu nav? ponieważ nie wydaje się to powszechną praktyką na większości witryn internetowych.
+0

proszę pisać kod też, jakiego typu dokument ty stwierdzenia prawidłowości przeciw? – APAD1

+0

możliwy duplikat błędu sprawdzania html [w3c - Sekcja nie ma nagłówka. Rozważ użycie elementów h2-h6, aby dodać nagłówki identyfikujące do wszystkich sekcji] (http://stackoverflow.com/questions/24155024/w3c-html-validation-error-section-lacks-heading-consider-using-h2-h6-elements) – unor

+1

To nie jest duplikat pytania, pytanie, które łączysz, dotyczy ostrzeżeń dotyczących sprawdzania poprawności. Moje pytanie dotyczy struktury zarysu dokumentu. –

Odpowiedz

11

Dzieje się tak, ponieważ element nav jest zdefiniowany w ramach Sections section of the HTML5 specification, a sekcje mają mieć nagłówki.

chodzi o zarysie dokumentu:

Zarys do cięcia zawartości elementu lub elementu głównego cięcia składa się z listy jednego lub większej liczby potencjalnie zagnieżdżone sekcje. Sekcja jest kontenerem, który odpowiada pewnym węzłom w oryginalnym drzewie DOM. Każda sekcja może mieć jeden nagłówek powiązany z nią i może zawierać dowolną liczbę dalszych zagnieżdżonych sekcji.

4.3.10.1 Creating an outline - HTML5 Specification

Uwaga słowo może - nie są one wymagane. Gdyby były one wymagane, walidator wyrzucałby ostrzeżenia i błędy, a nie jakieś przyjazne notatki, przypominające o tym, że brakuje nagłówka.


Tak, aby odpowiedzieć na Twoje pytania:

Dlaczego zarys w tym jest?

To tylko przyjacielskie przypomnienie, że nagłówek nie jest obecny. Na wszelki wypadek spodziewałbyś się, że nagłówek będzie obecny, ale na przykład zapomniałeś go dodać.

Jaki jest właściwy sposób dodawania nagłówka do elementu nav?

To całkowicie zależy od tego, co chcesz osiągnąć. Sama specyfikacja HTML5 daje następujący przykład:

<nav> 
    <h1>Navigation</h1> 
    <ul>...</ul> 
</nav> 

jest konieczne, aby dodać nagłówek do elementu nav? ponieważ nie wydaje się to powszechną praktyką na większości witryn internetowych.

Wcale nie. To całkowicie opcjonalne. Niektórzy mogą twierdzić, że do celów SEO korzystne byłoby dodanie nagłówka do wszystkich sekcji, ale to zależy wyłącznie od Ciebie. Zawsze możesz ukryć nagłówek za pomocą CSS, jeśli chcesz je dodać, ale nie chcesz ich wyświetlać.

+0

Dzięki @ James Donnelly –

6
  • The nav element is a sectioning element, podobnie jak ciało, artykuł sekcji i bok. Każda sekcja jest oczekiwana, choć nie jest wymagana, aby mieć nagłówek.
  • Właściwym sposobem jest element h1, h2, ..., tak jak w przypadku każdego innego elementu cięcia.
  • Nie, nie jest to konieczne. Jeśli naprawdę interesujesz się konspektem, zawsze możesz go dodać i ukryć za pomocą CSS, ale nie ma nic złego w całkowitym pominięciu nagłówka.

Zarys utworzony przez dokument nie ma wpływu na zatwierdzanie. Dokument można zweryfikować jako HTML5, tworząc zupełnie inny kontur, niż mógłby się spodziewać autor. Ale w kontekście walidacji nagłówki nigdy nie są wymagane przez żaden element przekroju.

+0

Dzięki @BoltClock –

4

Nie jest to błąd zgodności HTML, który ma element nav bez nagłówka. Widok konspektu przedstawiony w module sprawdzającym zgodność ma wyłącznie charakter informacyjny.

4

@ Odpowiedź james-donnelly jest na miejscu. Po prostu chciał dodać, że zwykle zrobić coś takiego:

<nav> 
    <h1 class="v-h">Site Navigation</h1> 
    <ul> 
     <li>...</li> 
     <li>...</li> 
     <li>...</li> 
    </ul> 
</nav> 

a następnie w moim CSS, klasa v-h jest zdefiniowany jako:

.v-h { 
    position: absolute !important; 
    height: 1px; width: 1px; 
    overflow: hidden; 
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 
    clip: rect(1px, 1px, 1px, 1px); 
} 

To sprawia, że ​​nagłówek niewidoczny w wypełnioną zawartość HTML ale pozwala czytnikom ekranu "widzieć" zawartość.

referencje: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility

Powiązane problemy