Bug 97204

Summary: HTML map does not work using id attribute in xhtml 1.1
Product: WebKit Reporter: vabr <vabr+webkit+bugs>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: vabr+webkit+bugs
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   

Description vabr 2012-09-20 06:06:39 PDT
[This is derived from http://crbug.com/108489 ]

== Summary ==
It looks like for XHTML 1.1, WebKit ignores "id" attribute for the "map" HTML tag, and does not ignore the "name" attribute.
The norm, on the other hand, prescribes "id" and forbids "name" for the "map" tag.
See:
http://www.w3.org/TR/xhtml1/#h-4.10
http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_imapmodule
http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Client-side_Image_Map (search for "'usemap' points to the 'id' attribute of a <map> element")

== Reproduction ==
Steps:
1. Go to http://xkcd.com/
2. Click on any of the five thumbnails of the old issues of the comics at the bottom of the page.

Expected:
* The browser should navigate to the old comics.

Observed:
* Nothing happens.

This was observed on GNU/Linux running:
 * Chromium 24.0.1272.0 (Developer Build 157719) + WebKit 537.11 (trunk@128849)
 * Google Chrome 22.0.1229.56 (Official Build 156464) beta + WebKit 537.4 (@128207)
and also on other configurations (see http://crbug.com/108489).

== Pointer to source ==
I looks like the culprit is the conditional

if (document()->isHTMLDocument())
                return;

in HTMLMapElement::parseAttribute() in WebCore/html/HTMLMapElement.cpp

If that is removed, the id works OK.
Comment 1 Alexey Proskuryakov 2012-09-20 10:15:27 PDT
XKCD is not XHTML, so the bug title is misleading. Anyway, a duplicate.

*** This bug has been marked as a duplicate of bug 91228 ***