Как избежать дублирования якорей XHTML? - PullRequest
0 голосов
/ 23 февраля 2011

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

<ul >
            <li><a href="#toc1" title="About The Code">About The Code</a></li>
            <li><a href="#toc2" title="Blah Blah Test">Link 2 is boring</a></li>
            <li><a href="#toc3" title="3rd link test">3rd line in</a></li>
            <li><a href="#toc4" title="Contact Manny">Contact Manny</a></li>

            <h3><a name="toc1" id="toc1">About the code</a></h3>
            <h3><a name="toc2" id="toc2">Link 2 test</a></h3>
            <h3><a name="toc3" id="toc3">3rd test</a></h3>
            <h3><a name="toc4" id="toc4">Contact Manny</a></h3>
 </ul>

Так что я делаю не так?Могу ли я изменить идентификатор на что-то другое?

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

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

Тем не менее, современный подход (то есть не потворствование Netscape 4) заключается в следующем:

            <h3 id="toc1">About the code</h3>

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

Возможно, у вас тоже должны быть лучшие идентификаторы.id="about" - URL-адреса, которые информируют читателей о том, куда они идут, обычно лучше, чем URL-адреса, которые этого не делают /mypage/#about бьется /mypage/#toc1

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

0 голосов
/ 23 февраля 2011

Атрибуты name и id совместно используют одно и то же пространство имен, поэтому они должны быть разными.

http://www.w3.org/TR/html401/struct/links.html#h-12.2.3

Если вы пишете действительный XHTML, старайтесь не использовать тег имени.

http://www.w3.org/TR/xhtml1/

Раздел 4.10. Элементы с атрибутами 'id' и 'name' Обратите внимание, что в XHTML 1.0 атрибут name этих элементов формально устарел и будет удален в следующей версии XHTML.

Также у вас есть несколько h3, которые не находятся внутри li, но находятся внутри ul.

...