开发者

How to avoid dupliucate anchors XHTML?

I did a page and did a check on it using a software called WebKin开发者_如何学Pythong and it tells me I have duplicate anchors??

<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>

So what am I doing wrong?? Do I change the id to something else?


This looks like it is just some bad heuristics in the analysis software you are using. There isn't anything technically wrong with that code.

That said, a modern approach (i.e. not pandering to Netscape 4) would be to say:

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

… and I suspect this would also avoid triggering the aforementioned bad heuristic.

You should probably have better ids too. id="about" — URLs that inform readers where they go are generally better than URLs that don't so /mypage/#about beats /mypage/#toc1

On the subject of bad style, the title attribute is there to provide advisory information about an element. It should contain helpful extra information. Your example has it duplicating the main text of the links. At best this will just be some extra bytes to download. At worst, you can expect some screen reader users to have to listen to the destination of every link being repeated.


The name and id attribute share the same namespace so they need to be different.

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

If you are writing valid XHTML try not to use the name tag.

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

Section 4.10. The elements with 'id' and 'name' attributes Note that in XHTML 1.0, the name attribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML.

Also you have some h3's that aren't inside li's but are inside of a ul.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜