usemap=#someID + XHTML1.1 + validator.w3.org

15th November 2005 - 16:02

Один из приёмов использования <img usemap="#someID"../> в XHTML 1.1 (как продолжение темы «перестают работать Некоторые Вещи»).

On the a and map elements, the name attribute has been removed in favor of the id attribute.

w3c.org: XHTML 1.1 — Changes from XHTML 1.0 Strict.

xhtml1-strict.dtd

<!ENTITY % URI "CDATA">
  ...
<!ATTLIST img
  ...
  usemap      %URI;          #IMPLIED
  ...
  >

<-- usemap points to a map element which may be in this document
  or an external document, although the latter is not widely supported -->
xhtml11.dtd

<!ATTLIST %img.qname;
      usemap       IDREF                    #IMPLIED
>

<!-- 'usemap' points to the 'id' attribute of a <map> element,
     which must be in the same document; support for external
     document maps was not widely supported in HTML and is
     eliminated in XHTML.

     It is considered an error for the element pointed to by
     a usemap IDREF to occur in anything but a <map> element.
-->

Но указание id в usemap картинки воспринимает лишь Gecko. Сейчас мы попробуем в очередной раз стукнуть в бубен, чтобы ублажить валидатор.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
  [<!ATTLIST img usemap CDATA #IMPLIED>]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <title>xhtml11.dtd: usemap CDATA test</title>
  <!--[if IE]><script>document.body.innerHTML=""</script><![endif]-->
</head>
<body>
  <div>
    <map id="mapid">
      <area alt="" href="/installation.html" shape="rect" coords="366, 57, 470, 82"/>
      <area alt="" href="/faq.html" shape="rect" coords="472, 57, 530, 82"/>
      <area alt="" href="/screenshots.html" shape="rect" coords="531, 57, 633, 82"/>
      <area alt="" href="/contact.html" shape="rect" coords="635, 57, 709, 82"/>
      <area alt="" href="/index.html" shape="rect" coords="0, 0, 256, 99"/>
    </map>
    <img alt="" src="map.png" usemap="#mapid" height="100" width="717"/>
  </div>
</body>
</html>

А что увидят пользователи IE с отключенным JavaScript? ]> — маленькая расплата за валидность (правда, от неё можно избавиться и посредством CSS).

Categories: dHtml | comments: (1)

Комментарии

1. Ilya Birman 15th November 2005 - 19:26

Посмотри (типа юмор): http://hsivonen.iki.fi/wannabe/

Это я так, безо всякой задней мысли :-)

Mash:

Забавно. :)

Комментарии временно отключены.