Code higlighting with PRISM (No, sorry all my friends at the NSA, that isn't *your* prism)
authorcharles
Mon, 24 Jun 2013 09:49:45 +0400
changeset 54 8b0986c3bb64
parent 53 fb52de388c76
child 55 e2129bb908aa
Code higlighting with PRISM (No, sorry all my friends at the NSA, that isn't *your* prism)
longdesc1/longdesc.html
longdesc1/prism.css
longdesc1/prism.js
--- a/longdesc1/longdesc.html	Fri Jun 21 10:13:14 2013 +0200
+++ b/longdesc1/longdesc.html	Mon Jun 24 09:49:45 2013 +0400
@@ -1,4 +1,4 @@
-<html dir="ltr" lang="en">
  <head>
    <meta charset="UTF-8">
    <title>HTML Image Description Extension (longdesc)</title>
    <style>
      .issue {border: dashed red 2px; background-color: #ffd}
      .example, .example code {color: #404; background-color:#eee}
      .example::before {float:left;
        margin-top: -.2em;
        background-color: white;
            display: block;
            border: 1px solid black;
            color: #404;
            padding: 2px;
        content: "Example: (non-normative)"}
      
      .example:first-child {padding-top:1em}
      
        /* Make these stand-out more... */
        .externalDFN {
            font-style: italic;
            background-color: #fff9d6;
        }
        /* Switch statement */
        dl.switch dt::before {
            content: "↪ ";
            margin-left: 1em;
        }
        /* Better spacing around various lists (implied paragraph children) */
        ol > li, section:not(#toc) ul > li, section dl > dt {
            margin: 1em 0;
        }
        /* domintro styling */
        dl.domintro {
            background-color: rgb(221, 255, 221);
            padding: 1em 0.5em 1em 2em;
            clear: both;
        }
        dl.domintro dt {
            color: black;
        }
        dl.domintro > dd {
            color: green;
        }
        dl.domintro::before {
            float: right;
            background-color: white;
            display: block;
            border: 2px solid black;
            color: green;
            margin-top: -20px;
            padding: 2px;
            content: "This box is non-normative.";
        }
        /* Fancy table stuff */
        table {
            border-collapse: collapse;
        }
        thead tr {
            border-bottom: 2px solid black;
        }
        tbody tr:not(:last-child) {
            border-bottom: 1px solid black;
        }
        td {
            border-left: 1px solid black;
            padding: 4px;
        }

/*****************************************************************
 * ReSpec 3 CSS
 * Robin Berjon - http://berjon.com/
 *****************************************************************/

/* --- INLINES --- */
em.rfc2119 { 
    text-transform:     lowercase;
    font-variant:       small-caps;
    font-style:         normal;
    color:              #900;
}

h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
    border: none;
}

dfn {
    font-weight:    bold;
}

a.internalDFN {
    color:  inherit;
    border-bottom:  1px solid #99c;
    text-decoration:    none;
}

a.externalDFN {
    color:  inherit;
    border-bottom:  1px dotted #ccc;
    text-decoration:    none;
}

a.bibref {
    text-decoration:    none;
}

cite .bibref {
    font-style: normal;
}

code {
    color:  #ff4500;
}

/* --- TOC --- */
.toc a, .tof a {
    text-decoration:    none;
}

a .secno, a .figno {
    color:  #000;
}

ul.tof, ol.tof {
    list-style: none outside none;
}

.caption {
    margin-top: 0.5em;
    font-style:   italic;
}


/* --- DL --- */
.section dd > p:first-child {
    margin-top: 0;
}

.section dd > p:last-child {
    margin-bottom: 0;
}

.section dd {
    margin-bottom:  1em;
}

.section dl.attrs dd, .section dl.eldef dd {
    margin-bottom:  0;
}
/* --- ISSUES/NOTES --- */
div.note-title {
    padding-right:  1em;
    min-width: 7.5em;
    color: #b9ab2d;
}

div.note-title { color: #52e052; }
div.note-title span {
    text-transform: uppercase;
}
div.note {
    margin-top: 1em;
    margin-bottom: 1em;
}
.note > p:first-child { margin-top: 0 }
.note {
    padding: .5em;
    border-left-width: .5em;
    border-left-style: solid;
}
div.note {
    padding: 0.5em;
    margin: 1em 0;
    position: relative;
    clear: both;
}
span.note { padding: .1em .5em .15em; }

.note {
    border-color: #52e052;
    background: #e9fbe9;
}


pre.idl {
    border-top: 1px solid #90b8de;
    border-bottom: 1px solid #90b8de;
    padding:    1em;
    line-height:    120%;
}

pre.idl::before {
    content:    "WebIDL";
    display:    block;
    width:      8ex;
    background: #90b8de;
    color:  #fff;
    font-family:    initial;
    padding:    3px;
    font-weight:    bold;
    margin: -1em 0 1em -1em;
}

.idlType {
    color:  #ff4500;
    font-weight:    bold;
    text-decoration:    none;
}

/*.idlInterface*/
.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
    font-weight:    bold;
    color:  #005a9c;
}

.idlSuperclass {
    font-style: italic;
    color:  #005a9c;
}

/*.idlAttribute*/
.idlAttrType, .idlFieldType, .idlMemberType {
    color:  #005a9c;
}
.idlAttrName, .idlFieldName, .idlMemberName {
    color:  #ff4500;
}
.idlAttrName a, .idlFieldName a, .idlMemberName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}



.extAttr {
    color:  #666;
}

/*.idlConst*/
.idlConstType {
    color:  #005a9c;
}
.idlConstName {
    color:  #ff4500;
}
.idlConstName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}


.idlImplements a {
    font-weight:    bold;
}

dl.attributes, dl.methods, dl.constants, dl.fields, dl.dictionary-members {
    margin-left:    2em;
}

.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
    font-weight:    normal;
}

.attributes dt code, .methods dt code, .constants dt code, .fields dt code, .dictionary-members dt code {
    font-weight:    bold;
    color:  #000;
    font-family:    monospace;
}

.attributes dt code, .fields dt code, .dictionary-members dt code {
    background:  #ffffd2;
}

.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
    color:  #005a9c;
    background:  transparent;
    font-family:    inherit;
    font-weight:    normal;
    font-style: italic;
}



.attributes dd, .methods dd, .constants dd, .fields dd, .dictionary-members dd {
    margin-bottom:  1em;
}



</style> <link href="https://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet">
    <!--[if lt IE 9]><script src='undefined://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
  </head>
  <body>
    <div class="head">
      <p> <a href="http://www.w3.org/"><img alt="W3C" src="http://www.w3.org/Icons/w3c_home"
            height="48"
            width="72"></a>
      </p>
      <h1 class="title" id="title">HTML5 Image Description Extension (<code>longdesc</code>)</h1>
      <h2 id="w3c-working-draft-20-september-2012"><abbr title="World Wide Web Consortium">W3C</abbr>
        Editors' Draft 21 June 2013</h2>
      <dl>
        <dt>Latest published version:</dt>
        <dd><a href="http://www.w3.org/TR/HTML-longdesc">http://www.w3.org/TR/HTML-longdesc</a></dd>
        <dt>Latest editor's draft:</dt>
        <dd> <a href="http://dvcs.w3.org/hg/html-proposals/raw-file/default/longdesc1/longdesc.html">http://dvcs.w3.org/hg/html-proposals/raw-file/default/longdesc1/longdesc.html</a></dd>
        <dt>Editors:</dt>
        <dd><a href="mailto:chaals@yandex-team.ru">Charles (McCathie) Nevile</a>,
          <a href="http://www.yandex.ru">Яндекс</a>—<a href="http://yandex.com">Yandex</a></dd>
      </dl>
      <p class="copyright"> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
        © 2012-2013 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>),
+<html dir="ltr" lang="en">
  <head>
    <meta charset="UTF-8">
    <title>HTML Image Description Extension (longdesc)</title>
    <style>
      .issue {border: dashed red 2px; background-color: #ffd}
      .example {color: #404; background-color:#eee}
      .example::before {float:left;
        margin-top: -.2em;
        background-color: white;
            display: block;
            border: 1px solid black;
            color: #404;
            padding: 2px;
        content: "Example: (non-normative)"}
      
      .example:first-child {padding-top:1em}
      
        /* Make these stand-out more... */
        .externalDFN {
            font-style: italic;
            background-color: #fff9d6;
        }
        /* Switch statement */
        dl.switch dt::before {
            content: "↪ ";
            margin-left: 1em;
        }
        /* Better spacing around various lists (implied paragraph children) */
        ol > li, section:not(#toc) ul > li, section dl > dt {
            margin: 1em 0;
        }
        /* domintro styling */
        dl.domintro {
            background-color: rgb(221, 255, 221);
            padding: 1em 0.5em 1em 2em;
            clear: both;
        }
        dl.domintro dt {
            color: black;
        }
        dl.domintro > dd {
            color: green;
        }
        dl.domintro::before {
            float: right;
            background-color: white;
            display: block;
            border: 2px solid black;
            color: green;
            margin-top: -20px;
            padding: 2px;
            content: "This box is non-normative.";
        }
        /* Fancy table stuff */
        table {
            border-collapse: collapse;
        }
        thead tr {
            border-bottom: 2px solid black;
        }
        tbody tr:not(:last-child) {
            border-bottom: 1px solid black;
        }
        td {
            border-left: 1px solid black;
            padding: 4px;
        }

/*****************************************************************
 * ReSpec 3 CSS
 * Robin Berjon - http://berjon.com/
 *****************************************************************/

/* --- INLINES --- */
em.rfc2119 { 
    text-transform:     lowercase;
    font-variant:       small-caps;
    font-style:         normal;
    color:              #900;
}

h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
    border: none;
}

dfn {
    font-weight:    bold;
}

a.internalDFN {
    color:  inherit;
    border-bottom:  1px solid #99c;
    text-decoration:    none;
}

a.externalDFN {
    color:  inherit;
    border-bottom:  1px dotted #ccc;
    text-decoration:    none;
}

a.bibref {
    text-decoration:    none;
}

cite .bibref {
    font-style: normal;
}



/* --- TOC --- */
.toc a, .tof a {
    text-decoration:    none;
}

a .secno, a .figno {
    color:  #000;
}

ul.tof, ol.tof {
    list-style: none outside none;
}

.caption {
    margin-top: 0.5em;
    font-style:   italic;
}


/* --- DL --- */
.section dd > p:first-child {
    margin-top: 0;
}

.section dd > p:last-child {
    margin-bottom: 0;
}

.section dd {
    margin-bottom:  1em;
}

.section dl.attrs dd, .section dl.eldef dd {
    margin-bottom:  0;
}
/* --- ISSUES/NOTES --- */
div.note-title {
    padding-right:  1em;
    min-width: 7.5em;
    color: #b9ab2d;
}

div.note-title { color: #52e052; }
div.note-title span {
    text-transform: uppercase;
}
div.note {
    margin-top: 1em;
    margin-bottom: 1em;
}
.note > p:first-child { margin-top: 0 }
.note {
    padding: .5em;
    border-left-width: .5em;
    border-left-style: solid;
}
div.note {
    padding: 0.5em;
    margin: 1em 0;
    position: relative;
    clear: both;
}
span.note { padding: .1em .5em .15em; }

.note {
    border-color: #52e052;
    background: #e9fbe9;
}


pre.idl {
    border-top: 1px solid #90b8de;
    border-bottom: 1px solid #90b8de;
    padding:    1em;
    line-height:    120%;
}

pre.idl::before {
    content:    "WebIDL";
    display:    block;
    width:      8ex;
    background: #90b8de;
    color:  #fff;
    font-family:    initial;
    padding:    3px;
    font-weight:    bold;
    margin: -1em 0 1em -1em;
}

.idlType {
    color:  #ff4500;
    font-weight:    bold;
    text-decoration:    none;
}

/*.idlInterface*/
.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
    font-weight:    bold;
    color:  #005a9c;
}

.idlSuperclass {
    font-style: italic;
    color:  #005a9c;
}

/*.idlAttribute*/
.idlAttrType, .idlFieldType, .idlMemberType {
    color:  #005a9c;
}
.idlAttrName, .idlFieldName, .idlMemberName {
    color:  #ff4500;
}
.idlAttrName a, .idlFieldName a, .idlMemberName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}



.extAttr {
    color:  #666;
}

/*.idlConst*/
.idlConstType {
    color:  #005a9c;
}
.idlConstName {
    color:  #ff4500;
}
.idlConstName a {
    color:  #ff4500;
    border-bottom:  1px dotted #ff4500;
    text-decoration: none;
}


.idlImplements a {
    font-weight:    bold;
}

dl.attributes, dl.methods, dl.constants, dl.fields, dl.dictionary-members {
    margin-left:    2em;
}

.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
    font-weight:    normal;
}

.attributes dt code, .methods dt code, .constants dt code, .fields dt code, .dictionary-members dt code {
    font-weight:    bold;
    color:  #000;
    font-family:    monospace;
}

.attributes dt code, .fields dt code, .dictionary-members dt code {
    background:  #ffffd2;
}

.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
    color:  #005a9c;
    background:  transparent;
    font-family:    inherit;
    font-weight:    normal;
    font-style: italic;
}



.attributes dd, .methods dd, .constants dd, .fields dd, .dictionary-members dd {
    margin-bottom:  1em;
}



</style> <link href="prism.css" rel="stylesheet">
    <link href="https://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet">
    <!--[if lt IE 9]><script src='undefined://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]-->
  </head>
  <body>
    <div class="head">
      <p> <a href="http://www.w3.org/"><img alt="W3C" src="http://www.w3.org/Icons/w3c_home"
            height="48"
            width="72"></a>
      </p>
      <h1 class="title" id="title">HTML5 Image Description Extension (<code>longdesc</code>)</h1>
      <h2 id="w3c-working-draft-20-september-2012"><abbr title="World Wide Web Consortium">W3C</abbr>
        Editors' Draft 21 June 2013</h2>
      <dl>
        <dt>Latest published version:</dt>
        <dd><a href="http://www.w3.org/TR/HTML-longdesc">http://www.w3.org/TR/HTML-longdesc</a></dd>
        <dt>Latest editor's draft:</dt>
        <dd> <a href="http://dvcs.w3.org/hg/html-proposals/raw-file/default/longdesc1/longdesc.html">http://dvcs.w3.org/hg/html-proposals/raw-file/default/longdesc1/longdesc.html</a></dd>
        <dt>Editors:</dt>
        <dd><a href="mailto:chaals@yandex-team.ru">Charles (McCathie) Nevile</a>,
          <a href="http://www.yandex.ru">Яндекс</a>—<a href="http://yandex.com">Yandex</a></dd>
      </dl>
      <p class="copyright"> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
        © 2012-2013 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>),
         All Rights Reserved. <abbr title="World Wide Web Consortium">W3C</abbr>
        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
        and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
           use</a> rules apply. </p>
      <hr> </div>
    <section class="introductory" id="abstract">
      <h2>Abstract</h2>
      <p>This specification defines a <code>longdesc</code> attribute (based on
        the <code>longdesc</code> attribute of HTML 4) to link descriptions to
        images in HTML5 content. </p>
      <p>Note that by allowing a hyperlink inside another one, this document
        explicitly redefines the HTML concept of hyperlink in a limited set of
        circumstances.</p>
    </section>
    <section class="introductory" id="sotd">
      <h2>Status of This Document</h2>
      <p> <em>This section describes the status of this document at the time of
          its publication. Other documents may supersede this document. A list
          of current <abbr title="World Wide Web Consortium">W3C</abbr>
          publications and the latest revision of this technical report can be
          found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr>
            technical reports index</a> at http://www.w3.org/TR/.</em> </p>
      <p> This document is an editors' draft proposed to the HTML Working Group
        Accessibility Task Force for publication as a Last Call Working Draft.
        Following feedback on the <a href="http://www.w3.org/TR/2013/WD-html-longdesc-20130312/">First
           Public Working Draft</a>, a number of <a href="https://www.w3.org/Bugs/Public/buglist.cgi?product=HTML%20WG&amp;amp;component=HTML%20Image%20Description%20Extension">bugs</a>
        were raised and resolved and a <a href="http://www.w3.org/TR/2013/WD-html-longdesc-20130606/">Second
@@ -19,14 +19,14 @@
               </span>References</a>
          <ul class="toc">
            <li class="tocline"><a class="tocxref" href="#normative-references"><span
                  class="secno">B.1
                   </span>Normative references</a></li>
            <li class="tocline"><a class="tocxref" href="#informative-references"><span
                  class="secno">B.2
                   </span>Informative references</a></li>
          </ul>
        </li>
        <li class="tocline"><a class="tocxref" href="#changes"><span class="secno">C.
-              </span>Change History</a></li>
      </ul>
    </section>
    <section id="intro" class="introductory">
      <h1>Introduction</h1>
      <p>HTML 4 provided a <code>longdesc</code> attribute for the <code>img</code>
        element that enabled a machine-discoverable description of an image to
        be linked to the image. This extension specification defines a <code>longdesc</code>
        attribute to provide that functionality for HTML5.</p>
      <pre class="example"><code><br><br>&lt;!-- The description is somewhere on the same page as the image --&gt;
&lt;img src="http://example.com/graph1" alt="(Drinks are getting sweeter)" title="Figure One" <strong>longdesc="#graph1Explained"</strong>&gt;

&lt;!-- The description is a page on its own --&gt;
&lt;img src="figure1" alt="figure 1" <strong>longdesc="http://example.com/desc1"</strong>&gt;

&lt;!-- The description is one of several within an external page --&gt;
&lt;img src="ExampleImage" alt="example" <strong>longdesc="http://example.com/descs#item3"</strong>&gt;

&lt;!-- The description is included in a data: URI --&gt;
&lt;img src="logo" alt="W3C" <strong>longdesc="data:text/html;charset=utf-8;,%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E
%3Ctitle%3EDescription%20of%20the%20W3C%20Logo%3C/title%3E%3C/head%3E%3Cbody%3E%3Cp%3EA%20blue%20capital%20letter<br>%20%22W%22%20with%20kerning%20so%20it%20touches%20a%20blue%203%2C%20followed%20by%20a%20black%20shadow%20<br>of%20a%20white%20capital%20letter%20C%20all%20on%20a%20white%20background%3C/body%3E%3C/html%3E"</strong>&gt;</code></pre>
    </section>
    <section id="conformance">
      <h2><span class="secno">1. </span>Conformance</h2>
      <p>As well as sections marked as non-normative, all authoring guidelines,
        diagrams, examples, and notes in this specification are non-normative.
        Everything else in this specification is normative. </p>
      <p>The key words <em title="must" class="rfc2119">must</em>, <em title="should"
          class="rfc2119">should</em>,
        <em title="should not" class="rfc2119"></em><em title="recommended" class="rfc2119"></em>and
+              </span>Change History</a></li>
      </ul>
    </section>
    <section id="intro" class="introductory">
      <h1>Introduction</h1>
      <p>HTML 4 provided a <code>longdesc</code> attribute for the <code>img</code>
        element that enabled a machine-discoverable description of an image to
        be linked to the image. This extension specification defines a <code>longdesc</code>
        attribute to provide that functionality for HTML5.</p>
      <pre class="example"><code class="language-markup">

&lt;!-- The description is somewhere on the same page as the image --&gt;
&lt;img src="http://example.com/graph1" alt="(Drinks are getting sweeter)"
    title="Figure One" longdesc="#graph1Explained"&gt;

&lt;!-- The description is a page on its own --&gt;
&lt;img src="figure1" alt="figure 1" longdesc="http://example.com/desc1"&gt;

&lt;!-- The description is one of several within an external page --&gt;
&lt;img src="ExampleImage" alt="example" longdesc="http://example.com/descs#item3"&gt;

&lt;!-- The description is included in a data: URI --&gt;
&lt;img src="logo" alt="W3C" longdesc="data:text/html;charset=utf-8;,%3C!DOCTYPE%20html%3E
%3Chtml%3E%3Chead%3E%3Ctitle%3EDescription%20of%20the%20W3C%20Logo%3C/title%3E%3C/head%3E
%3Cbody%3E%3Cp%3EA%20blue%20capital%20letter%20%22W%22%20with%20kerning%20so%20it%20
touches%20a%20blue%203%2C%20followed%20by%20a%20black%20shadow%20of%20a%20white%20
capital%20letter%20C%20all%20on%20a%20white%20background%3C/body%3E%3C/html%3E"&gt;</code></pre>
    </section>
    <section id="conformance">
      <h2><span class="secno">1. </span>Conformance</h2>
      <p>As well as sections marked as non-normative, all authoring guidelines,
        diagrams, examples, and notes in this specification are non-normative.
        Everything else in this specification is normative. </p>
      <p>The key words <em title="must" class="rfc2119">must</em>, <em title="should"
          class="rfc2119">should</em>,
        <em title="should not" class="rfc2119"></em><em title="recommended" class="rfc2119"></em>and
         <em title="may" class="rfc2119">may</em><em title="optional" class="rfc2119"></em>
        in this specification are to be interpreted as described in [<cite><a class="bibref"
            href="#bib-RFC2119">RFC2119</a></cite>].</p>
      <section id="dependencies">
        <h3><span class="secno">1.1 </span>Dependencies and definitions</h3>
        <p>The IDL fragments in this specification <em title="must" class="rfc2119">must</em>
          be interpreted as required for conforming IDL fragments, as described
          in the Web IDL specification. [<cite><a class="bibref" href="#bib-WEBIDL">WEBIDL</a></cite>]</p>
        <p>The terms "<a href="http://www.w3.org/TR/html5/infrastructure.html#valid-url-potentially-surrounded-by-spaces">valid
             non-empty URL potentially surrounded by spaces</a>", "<a href="http://www.w3.org/TR/html5/links.html#hyperlink">hyperlink"</a>,
          and "<a href="http://www.w3.org/TR/html5/infrastructure.html#reflect">reflect</a>",
           used in this specification are defined in [<cite><a class="bibref" href="#bib-HTML5">HTML5</a></cite>],
           although this specification modifies the semantics of the term
          "hyperlink" in allowing hyperlinks to be nested in certain specific
          circumstances.</p>
        <p>This document does not define the term "accessible" nor
          accessibility, but uses them with the sense they have in [<a href="#bib-WCAG2">WCAG</a>]</p>
      </section>
    </section>
    <section id="UCnR">
      <h2><span class="secno">2. </span>Use Cases and Requirements</h2>
      <p>There are many ways users can successfully interact with images even if
        they cannot see, or see well. The <code>alt</code> attribute is
        designed to ensure that for everyday work, a user has enough information
        to replace an image, and often this is more helpful than a detailed
        description of every image. The <code>longdesc</code> attribute is
        designed to complement this functionality, to meet the following use
        cases. </p>
      <h3 id="use-cases">Use Cases</h3>
      <dl>
        <dt>Identifying a well-known image</dt>
      </dl>
      <dl>
        <dd>Identifying an image is often important context for a discussion.
          There are many well-known images which are widely reproduced and well
          known. In some cases, such as "Mona Lisa", "Gerníka", Cubbin's "Lost",
          Leunig's "ramming the shears", the most effective way to identify an
          image is to use its title, creator, and similar information that would
          be found in a catalog. But different people know images by different
          titles, and some titles are not well known. Where the image itself
          cannot be seen, a description can often be used to offer easier
          recognition than the cataloging information, for example "Washington
          crossing some river, standing heroically in the boat, while soldiers
          do the hard work", or "the Da Vinci picture of the guy in a square and
          a circle".</dd>
        <dd><em>Requires</em>: Discoverability</dd>
        <dd><em>Helped by</em>: Inline, Reuse</dd>
        <dt>Describing a complex diagram</dt>
        <dd>In many environments diagrams are used to explain a concept or
          transmit information efficiently. For a user with a reduced ability to
          see the image (poor contrast vision and other conditions are as
          relevant here as a complete lack of vision), a description can enable
          that user to understand the information being presented.</dd>
        <dd><em>Requires</em>: Structured Markup, Inline, Reuse, Simple Return</dd>
        <dt>Teaching Accessible Development</dt>
        <dd>In many environments producing content that is accessible to users
          regardless of disability is a legal and/or market requirement. </dd>
        <dd><em>Requires</em>: Maintenance, Backwards compatibility</dd>
        <dt>A self-describing artistic work</dt>
        <dd>The visual design of many pages is an important part of the message
          the author intends to convey to a fully-sighted user. Many authors
          would like to convey as much of that design as possible to a user with
          low or no vision. </dd>
        <dd><em>Requires</em>: No visual encumbrance, Structured Markup</dd>
        <dd><em>Helped by</em>: Reuse, Simple Return</dd>
        <dt>Referring to an existing description</dt>
        <dd>Many well-known images are already described by other sources. The
          copyright on those sources may not be compatible with re-publishing
          the description, but there is little value in making a new one. </dd>
        <dd><em>Requires</em>: Reuse, Structured Markup, Simple Return, Optional
          Consumption </dd>
        <dd><em>Helped by</em>: No Visual Encumbrance</dd>
        <dt>Linking to a description included within a page</dt>
        <dd>If an image already has a description included within a page, making
          the linkage explicit can provide further clarity for a user who is not
          able to interpret the default layout. For example this happens when
          users force a re-layout of the page elements because they have
          magnified the content, or because they do not see the default visual
          relationship between the element and its description.</dd>
        <dd>This practice also enables description to be provided for all users.</dd>
        <dd>By keeping the association clear the content maintainer can more
          easily check that the description and link are actually correct.</dd>
        <dd><em>Requires</em>: Inline, Simple Return, Structured Markup,
          Optional Consumption </dd>
        <dt>Localizing descriptions</dt>
        <dd>When content is localized to multiple languages, it is important
          that metadata intended for human consumption, such as image
          descriptions, can be readily localized.</dd>
        <dd><em>Helped by</em>: Structured Markup, Reuse, Maintenance.</dd>
      </dl>
      <h3 id="requirements">Requirements for an Image Description functionality</h3>
      <dl>
        <dt>No visual encumbrance</dt>
        <dd>It <em class="rfc2119">must</em> be possible to provide a
          description for an image without forcing the description to be
          rendered on the page.</dd>
        <dt>Structured Markup</dt>
        <dd>It <em class="rfc2119">must</em> be possible to include rich markup
          (e.g. HTML5) in the description of the image.</dd>
        <dt>Inline</dt>
        <dd>It <em class="rfc2119">must</em> be possible to associate a
          description in the body of a page with an image in that page. </dd>
        <dt>Reuse</dt>
        <dd>It <em class="rfc2119">must</em> be possible to re-use a single
          description for multiple occurrences of an image.</dd>
        <dt>Maintenance</dt>
        <dd>It <em class="rfc2119">must</em> be simple to maintain a library of
          images and descriptions for dynamic assembly, or dis-assembly and
          re-assembly, of content. </dd>
        <dt>Discoverability </dt>
        <dd class="rfc2119">It <em class="rfc2119">must</em> be simple for a
          user agent to automatically discover a description provided for a
          given image.</dd>
        <dd>A user <em class="rfc2119">should</em> be able to determine that
          there is a description available for a given image. </dd>
        <dt>Optional consumption</dt>
        <dd>A user <em class="rfc2119">must</em> be able to choose not to read
          the long description of a given image.</dd>
        <dt>Simple return</dt>
        <dd>A user <em class="rfc2119">must</em> be able to return from the
          description to the image. </dd>
        <dt>Backwards Compatibility </dt>
        <dd>It <em class="rfc2119">should</em> be possible to use existing
          tools and techniques to associate an image with its description. </dd>
      </dl>
    </section>
    <section id="longdesc">
      <h2><span class="secno"></span>3. The <code>longdesc</code> attribute</h2>
      <p>Note that this extension changes the definition of a hyperlink in HTML,
        by allowing a <code>longdesc</code> attribute to occur inside a
        hyperlink.</p>
      <h3 id="implementation">3.0 Implementation</h3>
      <h4 id="authors-and-conformance-checkers">3.0.1 Authors and Conformance
        checkers</h4>
      <section id="parsing">
        <p class="rfc2119">Zero or one <code>longdesc</code> attributes <em class="rfc2119">may</em>
          be added to any <code>img</code> element.</p>
        <p>The <code>longdesc</code> attribute <em class="rfc2119">must</em>
          contain a <a href="http://www.w3.org/TR/html5/infrastructure.html#valid-url-potentially-surrounded-by-spaces">valid
             non-empty URL potentially surrounded by spaces</a>. The URL is a <a
            href="http://dev.w3.org/html5/spec/links.html#hyperlink">hyperlink</a>
          to a description of the image that the parent <code>img</code>
          element represents. </p>
        <p>The linked description <em class="rfc2119">should</em> be in a
          broadly accessible format.</p>
        <div class="note">
          <p><em>This section is not normative</em></p>
          <p>Best practices for checking descriptions of images are beyond the
            scope of this document, but there are many resources available.
            For&nbsp; further guidance tool developers can consult e.g. [<a href="#bib-ATAGB3">ATAGB3</a>].
             <span class="issue">ISSUE: This doesn't seem a great reference - is
              there anything better? This is tracked in <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=21501">bug
-                21501</a> and its dependent bugs. Unless a proposal for
              improvement is made and accepted this bug will simply be closed
              after Last Call.</span></p>
          <p>High quality implementation in authoring and content management
            tools is likely to include checking for common errors, such as
            including a description instead of a URL in the attribute, or
            pointing to a resource that is an image or plain text, which are
            often poor choices for a high-quality description.</p>
          <p>This document does not define the term "accessible", nor
            accessibility. For further guidance on making an accessible
            document, authors can consult e.g. [<a href="file:///Users/chaals/Documents/w3c/html-proposals/longdesc1/longdesc.html#bib-WCAG2">WCAG</a>].</p>
        </div>
        <h4 id="authors">3.0.2 Authors</h4>
        <p>Authors <em class="rfc2119">should</em> put descriptions within an
          element which is the target of a fragment link (e.g. <code>longdesc="example.html#description"</code>)
          if a description is only part of the target document. </p>
        <div class="note">
          <p><em>This section is not normative</em></p>
          <p>Best practices for full descriptions of images are beyond the scope
            of this document, but there are many resources available.</p>
        </div>
        <h4 id="user-agents">3.0.3 User Agents</h4>
        <p>If the <code>longdesc</code> value is valid, User agents <em class="rfc2119">must</em>
          make the link available to all users through the regular user
          interface(s).&nbsp; </p>
        <p>If the <code>longdesc</code> value is valid, User agents <em class="rfc2119">must</em>
          expose the link to relevant APIs, especially accessibility-oriented
          APIs. </p>
        <p>User agents <em class="rfc2119">should</em> enable users to discover
          when images in a page contain a long description.</p>
        <div class="note">
          <p><em>This section is not normative</em></p>
          <p><code>longdesc</code> can be present on an image within a
            hyperlink. This does not change the requirements on user agents,
            which must still enable the hyperlink to be followed.</p>
          <p>Complete documentation of best practices for implementation is
            beyond the scope of this document. These notes are offered to help
            minimise the impact of common mistakes.</p>
          <p>A common mistake in the past has been to use a description, instead
            of a URL that links to a description. Converting such values to
            data: URLs is a repair strategy for user agents that can help users
            to recover in cases where authors have made this mistake. </p>
          <p>It is usually helpful when the behaviour for finding, reading, and
            returning from a long description to the image described is a
            consistent experience.</p>
          <p>Further information on making user agents accessible can be found
            in [<a href="file:///Users/chaals/Documents/w3c/html-proposals/longdesc1/longdesc.html#bib-UAAG">UAAG</a>].</p>
        </div>
      </section>
      <section id="extensions-to-the-element-interface">
        <h3><span class="secno">3.1 </span>Extension to the <code><a title="element"
              class="externalDFN"
              data-spec="HTML5">HTMLImageElement</a></code>
          interface</h3>
        <pre class="idl"><span class="idlInterface" id="idl-def-Element">partial interface <span
class="idlInterfaceID">HTMLImageElement</span> {
<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span
class="idlAttrName"><a
href="#widl-Element-longdesc">longdesc</a></span>;</span>
};</span></pre>
        <section id="attributes">
          <h4><span class="secno">3.1.1 </span>Attribute</h4>
          <dl class="attributes">
            <dt id="widl-Element-longdesc"><code>longdesc</code> of type <span
                class="idlAttrType"><a>DOMString</a></span></dt>
            <dd>
              <p class="rfc2119">The <dfn id="dfn-dom-element-longdesc"><code>longdesc</code></dfn>
                IDL attribute <em class="rfc2119">must</em> be a valid
                non-empty URL potentially surrounded by spaces. It defines a
                hyperlink to a detailed description of the image its parent <code><a
                    title="element"
                    class="externalDFN"
                    data-spec="DOM4">HTMLImageElement</a></code>
                represents.</p>
            </dd>
            <dd>
              <p>The <code>longdesc</code> IDL attribute <em class="rfc2119">must</em>
                <a href="http://www.w3.org/TR/html5/infrastructure.html#reflect">reflect</a>
                the HTML content attribute <code>longdesc</code>. </p>
            </dd>
            <dd>
              <dl class="note">
                <dt>
                  <p><em>This section is not normative</em></p>
                  <p><var>image</var>.<code title="dom-Element-innerHTML">longdesc</code>
                    [ = <var>value</var> ]</p>
                </dt>
                <dd>
                  <p>Returns a DOMString that represents the attribute's
                    contents. </p>
                  <p>Can be set, to replace the contents of the attribute with
                    the given string.</p>
                </dd>
              </dl>
            </dd>
          </dl>
          <pre class="example"><code>//Make the first internal longdesc reference absolute

var baseURL = document.location.origin + document.location.pathname
var someImage = document.querySelector('img[longdesc^=#]');

someImage.longdesc = baseURL + someImage.longdesc;</code></pre>
          <pre class="example"><code>//Open new windows for each longdesc found

var describedImages = document.querySelectorAll('img[longdesc]');

for (i in describedImages) {
  if (i.<strong>longdesc</strong>)
    window.open(i.<strong>longdesc</strong>);
}</code></pre>
          <pre class="example"><code>//Tries to repair errors where the longdesc isn't a URI

var describedImages = document.querySelectorAll('img[longdesc]');

for (i in describedImages) {
  if (i.longdesc &amp;&amp; !(validURL(i.longdesc)) { //assumes some URL validating function
    var theData = encodeURIComponent(i.longdesc);
    i.longdesc = "data:text/plain;charset=";
    i.longdesc += document.charset;
    i.longdesc += theData;
  }
}</code></pre>
        </section>
      </section>
      <section class="appendix" id="acknowledgements">
        <h2><span class="secno">A. </span>Acknowledgements</h2>
        <p><em>This section is not normative</em></p>
        <p>Thanks to the HTML Working Group of the late 1990s for the original
          specification of longdesc, to those who have implemented it in various
          kinds of software, and to many many people involved with the
          development of HTML5 (including but not limited to those who discussed
          "ISSUE-30" in the HTML Working Group, the Protocols and Formats
          Working Group, the W3C Advisory Board, and around countless dinner
          tables, coffee breaks, and elsewhere) for the ideas, discussions and
          contributions that led to the initial draft of this specification.
          With the exception of Laura Carlson, who did far more very valuable
          work than it took me to produce this specification, I haven't named
          them: the list might be larger than the content of the specification.</p>
        <p>For specific comments and suggestions that led to improvements over
          successive drafts of this specification, thanks to the W3C's HTML
          Accessibility Task Force, the W3C Internationalization Working Group,
          and to Jonathan Avila, Robin Berjon, James Craig, Steve Faulkner, John
          Foliot, Geoff Freed, Richard Ishida, Anne van Kesteren, David
          MacDonald, Chris Mills, Jay Munro, Devarshi Pant, Marta Pawlowski,
          Silvia Pfeiffer, Leif Halvard Silli, Mathew Turvey and Boris Zbarsky.
          Any errors are despite, not as a result of, their efforts.</p>
      </section>
      <section class="appendix" id="references">
        <h2><span class="secno">B. </span>References</h2>
        <section id="normative-references">
          <h3><span class="secno">B.1 </span>Normative references</h3>
          <dl class="bibliography">
            <dt id="bib-HTML5">[HTML5]</dt>
            <dd>Robin Berjon et. al., eds. <a href="http://www.w3.org/TR/html5/"><cite>HTML5.</cite></a>
              W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a>
            </dd>
            <dt id="bib-RFC2119">[RFC2119]</dt>
            <dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
+                21501</a> and its dependent bugs. Unless a proposal for
              improvement is made and accepted this bug will simply be closed
              after Last Call.</span></p>
          <p>High quality implementation in authoring and content management
            tools is likely to include checking for common errors, such as
            including a description instead of a URL in the attribute, or
            pointing to a resource that is an image or plain text, which are
            often poor choices for a high-quality description.</p>
          <p>This document does not define the term "accessible", nor
            accessibility. For further guidance on making an accessible
            document, authors can consult e.g. [<a href="file:///Users/chaals/Documents/w3c/html-proposals/longdesc1/longdesc.html#bib-WCAG2">WCAG</a>].</p>
        </div>
        <h4 id="authors">3.0.2 Authors</h4>
        <p>Authors <em class="rfc2119">should</em> put descriptions within an
          element which is the target of a fragment link (e.g. <code>longdesc="example.html#description"</code>)
          if a description is only part of the target document. </p>
        <div class="note">
          <p><em>This section is not normative</em></p>
          <p>Best practices for full descriptions of images are beyond the scope
            of this document, but there are many resources available.</p>
        </div>
        <h4 id="user-agents">3.0.3 User Agents</h4>
        <p>If the <code>longdesc</code> value is valid, User agents <em class="rfc2119">must</em>
          make the link available to all users through the regular user
          interface(s).&nbsp; </p>
        <p>If the <code>longdesc</code> value is valid, User agents <em class="rfc2119">must</em>
          expose the link to relevant APIs, especially accessibility-oriented
          APIs. </p>
        <p>User agents <em class="rfc2119">should</em> enable users to discover
          when images in a page contain a long description.</p>
        <div class="note">
          <p><em>This section is not normative</em></p>
          <p><code>longdesc</code> can be present on an image within a
            hyperlink. This does not change the requirements on user agents,
            which must still enable the hyperlink to be followed.</p>
          <p>Complete documentation of best practices for implementation is
            beyond the scope of this document. These notes are offered to help
            minimise the impact of common mistakes.</p>
          <p>A common mistake in the past has been to use a description, instead
            of a URL that links to a description. Converting such values to
            data: URLs is a repair strategy for user agents that can help users
            to recover in cases where authors have made this mistake. </p>
          <p>It is usually helpful when the behaviour for finding, reading, and
            returning from a long description to the image described is a
            consistent experience.</p>
          <p>Further information on making user agents accessible can be found
            in [<a href="file:///Users/chaals/Documents/w3c/html-proposals/longdesc1/longdesc.html#bib-UAAG">UAAG</a>].</p>
        </div>
      </section>
      <section id="extensions-to-the-element-interface">
        <h3><span class="secno">3.1 </span>Extension to the <code><a title="element"
              class="externalDFN"
              data-spec="HTML5">HTMLImageElement</a></code>
          interface</h3>
        <pre class="idl"><span class="idlInterface" id="idl-def-Element">partial interface <span
class="idlInterfaceID">HTMLImageElement</span> {
<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span
class="idlAttrName"><a
href="#widl-Element-longdesc">longdesc</a></span>;</span>
};</span></pre>
        <section id="attributes">
          <h4><span class="secno">3.1.1 </span>Attribute</h4>
          <dl class="attributes">
            <dt id="widl-Element-longdesc"><code>longdesc</code> of type <span
                class="idlAttrType"><a>DOMString</a></span></dt>
            <dd>
              <p class="rfc2119">The <dfn id="dfn-dom-element-longdesc"><code>longdesc</code></dfn>
                IDL attribute <em class="rfc2119">must</em> be a valid
                non-empty URL potentially surrounded by spaces. It defines a
                hyperlink to a detailed description of the image its parent <code><a
                    title="element"
                    class="externalDFN"
                    data-spec="DOM4">HTMLImageElement</a></code>
                represents.</p>
            </dd>
            <dd>
              <p>The <code>longdesc</code> IDL attribute <em class="rfc2119">must</em>
                <a href="http://www.w3.org/TR/html5/infrastructure.html#reflect">reflect</a>
                the HTML content attribute <code>longdesc</code>. </p>
            </dd>
            <dd>
              <dl class="note">
                <dt>
                  <p><em>This section is not normative</em></p>
                  <p><var>image</var>.<code title="dom-Element-innerHTML">longdesc</code>
                    [ = <var>value</var> ]</p>
                </dt>
                <dd>
                  <p>Returns a DOMString that represents the attribute's
                    contents. </p>
                  <p>Can be set, to replace the contents of the attribute with
                    the given string.</p>
                </dd>
              </dl>
            </dd>
          </dl>
          <pre class="example"><code class="language-javascript">/*Make the first internal longdesc reference absolute*/

var baseURL = document.location.origin + document.location.pathname
var someImage = document.querySelector('img[longdesc^=#]');

someImage.longdesc = baseURL + someImage.longdesc;</code></pre>
          <pre class="example"><code class="language-javascript">/*Open new windows for each longdesc found*/

var describedImages = document.querySelectorAll('img[longdesc]');

for (i in describedImages) {
  if (i.longdesc)
    window.open(i.longdesc);
}</code></pre>
          <pre class="example"><code class="language-javascript">/*Tries to repair errors where the longdesc isn't a URI*/

var describedImages = document.querySelectorAll('img[longdesc]');

for (i in describedImages) {
  if (i.longdesc &amp;&amp; !(validURL(i.longdesc)) { //assumes some URL validating function
    var theData = encodeURIComponent(i.longdesc);
    i.longdesc = "data:text/plain;charset=";
    i.longdesc += document.charset;
    i.longdesc += theData;
  }
}</code></pre>
        </section>
      </section>
      <section class="appendix" id="acknowledgements">
        <h2><span class="secno">A. </span>Acknowledgements</h2>
        <p><em>This section is not normative</em></p>
        <p>Thanks to the HTML Working Group of the late 1990s for the original
          specification of longdesc, to those who have implemented it in various
          kinds of software, and to many many people involved with the
          development of HTML5 (including but not limited to those who discussed
          "ISSUE-30" in the HTML Working Group, the Protocols and Formats
          Working Group, the W3C Advisory Board, and around countless dinner
          tables, coffee breaks, and elsewhere) for the ideas, discussions and
          contributions that led to the initial draft of this specification.
          With the exception of Laura Carlson, who did far more very valuable
          work than it took me to produce this specification, I haven't named
          them: the list might be larger than the content of the specification.</p>
        <p>For specific comments and suggestions that led to improvements over
          successive drafts of this specification, thanks to the W3C's HTML
          Accessibility Task Force, the W3C Internationalization Working Group,
          and to Jonathan Avila, Robin Berjon, James Craig, Steve Faulkner, John
          Foliot, Geoff Freed, Richard Ishida, Anne van Kesteren, David
          MacDonald, Chris Mills, Jay Munro, Devarshi Pant, Marta Pawlowski,
          Silvia Pfeiffer, Leif Halvard Silli, Mathew Turvey and Boris Zbarsky.
          Any errors are despite, not as a result of, their efforts.</p>
      </section>
      <section class="appendix" id="references">
        <h2><span class="secno">B. </span>References</h2>
        <section id="normative-references">
          <h3><span class="secno">B.1 </span>Normative references</h3>
          <dl class="bibliography">
            <dt id="bib-HTML5">[HTML5]</dt>
            <dd>Robin Berjon et. al., eds. <a href="http://www.w3.org/TR/html5/"><cite>HTML5.</cite></a>
              W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a>
            </dd>
            <dt id="bib-RFC2119">[RFC2119]</dt>
            <dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
                   words for use in RFCs to Indicate Requirement Levels.</cite></a>
              March 1997. Internet RFC 2119. URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a></dd>
            <dt id="bib-WEBIDL">[WEBIDL]</dt>
            <dd>Cameron McCormack. <a href="http://www.w3.org/TR/2011/WD-WebIDL-20110927/"><cite>Web
                   IDL.</cite></a> 27 September 2011. W3C Working Draft. (Work in
              progress.) URL: <a href="http://www.w3.org/TR/2011/WD-WebIDL-20110927/">http://www.w3.org/TR/2011/WD-WebIDL-20110927/</a></dd>
          </dl>
        </section>
        <section id="informative-references">
          <h3><span class="secno">B.2 </span>Informative references</h3>
          <dl class="bibliography">
            <dt id="bib-ATAGB3">[ATAGB3]</dt>
            <dd>Jutta Treviranus et. al., eds. <a href="http://www.w3.org/TR/ATAG20-TECHS/#principle_b3"><cite>Implementing
                   ATAG 2.0</cite></a>, Principle B3 "Authors must be supported
              in improving the accessibility of existing content" October 2011.
              W3C Working Draft. URL: <a href="http://www.w3.org/TR/ATAG20-TECHS/#principle_b3">http://www.w3.org/TR/ATAG20-TECHS/#principle_b3</a></dd>
            <dt id="bib-WCAG2">[WCAG]</dt>
            <dd>Ben Caldwell et. al., eds. <a href="http://www.w3.org/TR/2008/REC-WCAG20-20081211/"><cite>Web
@@ -34,4 +34,4 @@
                   Agent Accessibility Guidelines 1.0</cite></a>, December 2002.
              W3C Recommendation. URL: <a href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">http://www.w3.org/TR/2002/REC-UAAG10-20021217/</a>.
              A draft for a version 2.0 is available at <a href="http://www.w3.org/TR/UAAG20/">http://www.w3.org/TR/UAAG20/</a></dd>
          </dl>
        </section>
        <section class="appendix" id="changes">
          <h2><span class="secno">C. </span>Change History</h2>
          <p>(This section is not normative)</p>
          <h3>Between this draft and the <a href="http://www.w3.org/TR/2013/WD-html-longdesc-20130606/">Second
               Public Working Draft</a> </h3>
          <p>Editorial changes include:</p>
          <ul>
            <li>Explicitly stating that <code>longdesc</code> makes a limited
              change to the semantics of the term "hyperlink" in HTML</li>
            <li>Editing of the non-normative guidance in various places.</li>
          </ul>
          <h3>Between the <a href="http://www.w3.org/TR/2013/WD-html-longdesc-20130606/">Second
               Public Working Draft</a> and the <a href="http://www.w3.org/TR/2013/WD-html-longdesc-20130312/">First
-              Public Working Draft</a> <br>
          </h3>
          <p>Substantive changes include:</p>
          <ul>
            <li>Added a requirement that the destination of a <code>longdesc</code>
              <em class="rfc2119">should</em> be "accessible".</li>
            <li>The requirement to present content through the standard User
              Interface was changed from <em class="rfc2119">should</em> to <em
                class="rfc2119">must</em>.
            </li>
            <li>The requirement to present content through the standard User
              Interface was narrowed to apply only to valid values of <code>longdesc</code>.</li>
            <li>The requirement to present content through the Accessibility
              APIs was changed from <em class="rfc2119">should</em> to <em class="rfc2119">must</em>.
            </li>
            <li>The requirement to present content through the Accessibility
              APIs was narrowed to apply only to valid values of <code>longdesc</code>.</li>
            <li>The IDL attribute <code>longdesc</code> was changed to <a href="http://www.w3.org/TR/html5/infrastructure.html#reflect">reflect</a>
              the HTML content attribute <code>longdesc</code>.</li>
          </ul>
          <p>Editorial changes include:</p>
          <ul>
            <li>Clarifying that the document does not define "accessible",
              except that it is used in the sense that it is used in [<a href="#bib-WCAG2">WCAG</a>].</li>
            <li>Sectioning requirements according to whom they apply.</li>
            <li>Removed the statement that User Agents <em title="may" class="rfc2119">may</em><em
                title="optional"
                class="rfc2119"></em>
              present descriptions which are erroneously included in the content
              instead of a link.</li>
            <li>Added more examples</li>
          </ul>
        </section>
      </section>
    </section>
  </body>
</html>
\ No newline at end of file
+              Public Working Draft</a> <br>
          </h3>
          <p>Substantive changes include:</p>
          <ul>
            <li>Added a requirement that the destination of a <code>longdesc</code>
              <em class="rfc2119">should</em> be "accessible".</li>
            <li>The requirement to present content through the standard User
              Interface was changed from <em class="rfc2119">should</em> to <em
                class="rfc2119">must</em>.
            </li>
            <li>The requirement to present content through the standard User
              Interface was narrowed to apply only to valid values of <code>longdesc</code>.</li>
            <li>The requirement to present content through the Accessibility
              APIs was changed from <em class="rfc2119">should</em> to <em class="rfc2119">must</em>.
            </li>
            <li>The requirement to present content through the Accessibility
              APIs was narrowed to apply only to valid values of <code>longdesc</code>.</li>
            <li>The IDL attribute <code>longdesc</code> was changed to <a href="http://www.w3.org/TR/html5/infrastructure.html#reflect">reflect</a>
              the HTML content attribute <code>longdesc</code>.</li>
          </ul>
          <p>Editorial changes include:</p>
          <ul>
            <li>Clarifying that the document does not define "accessible",
              except that it is used in the sense that it is used in [<a href="#bib-WCAG2">WCAG</a>].</li>
            <li>Sectioning requirements according to whom they apply.</li>
            <li>Removed the statement that User Agents <em title="may" class="rfc2119">may</em><em
                title="optional"
                class="rfc2119"></em>
              present descriptions which are erroneously included in the content
              instead of a link.</li>
            <li>Added more examples</li>
          </ul>
        </section>
      </section>
    </section>
    <script src="prism.js" data-default-language="markup"></script>
  </body>
</html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/longdesc1/prism.css	Mon Jun 24 09:49:45 2013 +0400
@@ -0,0 +1,117 @@
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+	color: black;
+	text-shadow: 0 1px white;
+	font-family: Consolas, Monaco, 'Andale Mono', monospace;
+	direction: ltr;
+	text-align: left;
+	white-space: pre;
+	word-spacing: normal;
+
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+
+	-webkit-hyphens: none;
+	-moz-hyphens: none;
+	-ms-hyphens: none;
+	hyphens: none;
+}
+
+::-moz-selection {
+	text-shadow: none;
+	background: #b3d4fc;
+}
+
+::selection {
+	text-shadow: none;
+	background: #b3d4fc;
+}
+
+@media print {
+	code[class*="language-"],
+	pre[class*="language-"] {
+		text-shadow: none;
+	}
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+	padding: 1em;
+	margin: .5em 0;
+	overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+	background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+	padding: .1em;
+	border-radius: .3em;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+	color: slategray;
+}
+
+.token.punctuation {
+	color: #999;
+}
+
+.namespace {
+	opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number {
+	color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string {
+	color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+	color: #a67f59;
+	background: hsla(0,0%,100%,.5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+	color: #07a;
+}
+
+
+.token.regex,
+.token.important {
+	color: #e90;
+}
+
+.token.important {
+	font-weight: bold;
+}
+
+.token.entity {
+	cursor: help;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/longdesc1/prism.js	Mon Jun 24 09:49:45 2013 +0400
@@ -0,0 +1,9 @@
+/**
+ * Prism: Lightweight, robust, elegant syntax highlighting
+ * MIT license http://www.opensource.org/licenses/mit-license.php/
+ * @author Lea Verou http://lea.verou.me
+ */(function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.util.clone(e[i]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var i in n)r[i]=n[i];return r},insertBefore:function(e,n,r,i){i=i||t.languages;var s=i[e],o={};for(var u in s)if(s.hasOwnProperty(u)){if(u==n)for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);o[u]=s[u]}return i[e]=o},DFS:function(e,n){for(var r in e){n.call(e,r,e[r]);t.util.type(e)==="Object"&&t.languages.DFS(e[r],n)}}},highlightAll:function(e,n){var r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');for(var i=0,s;s=r[i++];)t.highlightElement(s,e===!0,n)},highlightElement:function(r,i,s){var o,u,a=r;while(a&&!e.test(a.className))a=a.parentNode;if(a){o=(a.className.match(e)||[,""])[1];u=t.languages[o]}if(!u)return;r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+o;a=r.parentNode;/pre/i.test(a.nodeName)&&(a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+o);var f=r.textContent;if(!f)return;f=f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ");var l={element:r,language:o,grammar:u,code:f};t.hooks.run("before-highlight",l);if(i&&self.Worker){var c=new Worker(t.filename);c.onmessage=function(e){l.highlightedCode=n.stringify(JSON.parse(e.data),o);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(l.element);t.hooks.run("after-highlight",l)};c.postMessage(JSON.stringify({language:l.language,code:l.code}))}else{l.highlightedCode=t.highlight(l.code,l.grammar,l.language);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(r);t.hooks.run("after-highlight",l)}},highlight:function(e,r,i){return n.stringify(t.tokenize(e,r),i)},tokenize:function(e,n,r){var i=t.Token,s=[e],o=n.rest;if(o){for(var u in o)n[u]=o[u];delete n.rest}e:for(var u in n){if(!n.hasOwnProperty(u)||!n[u])continue;var a=n[u],f=a.inside,l=!!a.lookbehind,c=0;a=a.pattern||a;for(var h=0;h<s.length;h++){var p=s[h];if(s.length>e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+"</"+s.tag+">"};if(!self.document){self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}})();;
+Prism.languages.markup={comment:/&lt;!--[\w\W]*?-->/g,prolog:/&lt;\?.+?\?>/,doctype:/&lt;!DOCTYPE.+?>/,cdata:/&lt;!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/&lt;\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^&lt;\/?[\w:-]+/i,inside:{punctuation:/^&lt;\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/&amp;#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&amp;/,"&"))});;
+Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/ig,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,ignore:/&(lt|gt|amp);/gi,punctuation:/[\{\};:]/g};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/(&lt;|<)style[\w\W]*?(>|&gt;)[\w\W]*?(&lt;|<)\/style(>|&gt;)/ig,inside:{tag:{pattern:/(&lt;|<)style[\w\W]*?(>|&gt;)|(&lt;|<)\/style(>|&gt;)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});;
+Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:class|interface|extends|implements|trait|instanceof|new)\s+)[a-z0-9_\.\\]+/ig,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/ig,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|=?&lt;|=?&gt;|={1,2}|(&amp;){1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};;
+Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(var|let|if|else|while|do|for|return|in|instanceof|function|new|with|typeof|try|catch|finally|null|break|continue)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(&lt;|<)script[\w\W]*?(>|&gt;)[\w\W]*?(&lt;|<)\/script(>|&gt;)/ig,inside:{tag:{pattern:/(&lt;|<)script[\w\W]*?(>|&gt;)|(&lt;|<)\/script(>|&gt;)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}});;