HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
60319452remove CONTROLLER and TT markers2011-04-26 19:31
@@ -65,21 +65,21 @@
   the infrastructure on which it relies. The W3C also publishes parts
   of this specification. One of these parts is called "HTML5".</p>
 
   <p>This specification and the specifications published by the W3C
   differ in a small number of ways. The main difference is that the
   W3C version does not include some newer features, such as:</p>
 
   <ul class="brief">
    <li>The <code>PeerConnection</code> API and related video-conferencing features.</li> <!--PEERCONTROLLER-->
    <li>The <code title="attr-hyperlink-ping">ping</code> attribute and related <span>hyperlink auditing</span> features.</li> <!--PING-->
-   <li>The <span>WebVTT</span> format and some <span>text track</span> API features.</li> <!--TT--> <!--TTVTT-->
+   <li>The <span>WebVTT</span> format and some <span>text track</span> API features.</li> <!--TTVTT-->
    <li>Rules for <a href="#atom">converting HTML to Atom</a>.</li> <!--MD-->
    <li>The <code title="dom-document-cssElementMap">cssElementMap</code> feature for defining <span title="CSS element reference identifier">CSS element reference identifiers</span>.</li> <!--CSSREF-->
    <li>An experimental <code>UndoManager</code> interface.</li><!--UNDO-->
   </ul>
 
   <p>This is a result of the specifications having different
   development modalities. The WHATWG specification is a continuously
   maintained living standard, with maturity managed at a very granular
   per-section scale, indicated by markers in the left margin; this is
   intended to model the way in which specifications are approached in
@@ -8673,23 +8673,21 @@ interface <dfn>HTMLDocument</dfn> {
   readonly attribute <span>HTMLCollection</span> <span title="dom-document-commands">commands</span>;
 
   // <span>event handler IDL attributes</span>
            attribute <span>Function</span> <span title="handler-onabort">onabort</span>;
            attribute <span>Function</span> <span title="handler-onblur">onblur</span>;
            attribute <span>Function</span> <span title="handler-oncanplay">oncanplay</span>;
            attribute <span>Function</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
            attribute <span>Function</span> <span title="handler-onchange">onchange</span>;
            attribute <span>Function</span> <span title="handler-onclick">onclick</span>;
            attribute <span>Function</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
-<!--KEEP-END w3c-html--><!--TT-->
            attribute <span>Function</span> <span title="handler-oncuechange">oncuechange</span>;
-<!--KEEP-START w3c-html--><!--TT-->
            attribute <span>Function</span> <span title="handler-ondblclick">ondblclick</span>;
            attribute <span>Function</span> <span title="handler-ondrag">ondrag</span>;
            attribute <span>Function</span> <span title="handler-ondragend">ondragend</span>;
            attribute <span>Function</span> <span title="handler-ondragenter">ondragenter</span>;
            attribute <span>Function</span> <span title="handler-ondragleave">ondragleave</span>;
            attribute <span>Function</span> <span title="handler-ondragover">ondragover</span>;
            attribute <span>Function</span> <span title="handler-ondragstart">ondragstart</span>;
            attribute <span>Function</span> <span title="handler-ondrop">ondrop</span>;
            attribute <span>Function</span> <span title="handler-ondurationchange">ondurationchange</span>;
            attribute <span>Function</span> <span title="handler-onemptied">onemptied</span>;
@@ -10071,23 +10069,21 @@ interface <dfn>XMLDocumentLoader</dfn> {
   readonly attribute <span>CSSStyleDeclaration</span> <span title="dom-style">style</span>;
 
   // <span>event handler IDL attributes</span>
            attribute <span>Function</span> <span title="handler-onabort">onabort</span>;
            attribute <span>Function</span> <span title="handler-onblur">onblur</span>;
            attribute <span>Function</span> <span title="handler-oncanplay">oncanplay</span>;
            attribute <span>Function</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
            attribute <span>Function</span> <span title="handler-onchange">onchange</span>;
            attribute <span>Function</span> <span title="handler-onclick">onclick</span>;
            attribute <span>Function</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
-<!--KEEP-END w3c-html--><!--TT-->
            attribute <span>Function</span> <span title="handler-oncuechange">oncuechange</span>;
-<!--KEEP-START w3c-html--><!--TT-->
            attribute <span>Function</span> <span title="handler-ondblclick">ondblclick</span>;
            attribute <span>Function</span> <span title="handler-ondrag">ondrag</span>;
            attribute <span>Function</span> <span title="handler-ondragend">ondragend</span>;
            attribute <span>Function</span> <span title="handler-ondragenter">ondragenter</span>;
            attribute <span>Function</span> <span title="handler-ondragleave">ondragleave</span>;
            attribute <span>Function</span> <span title="handler-ondragover">ondragover</span>;
            attribute <span>Function</span> <span title="handler-ondragstart">ondragstart</span>;
            attribute <span>Function</span> <span title="handler-ondrop">ondrop</span>;
            attribute <span>Function</span> <span title="handler-ondurationchange">ondurationchange</span>;
            attribute <span>Function</span> <span title="handler-onemptied">onemptied</span>;
@@ -10183,23 +10179,21 @@ interface <dfn>HTMLUnknownElement</dfn> : <span>HTMLElement</span> { };</pre>
   element</span>:</p>
 
   <ul class="brief">
    <li><code title="handler-onabort">onabort</code></li>
    <li><code title="handler-onblur">onblur</code>*</li>
    <li><code title="handler-oncanplay">oncanplay</code></li>
    <li><code title="handler-oncanplaythrough">oncanplaythrough</code></li>
    <li><code title="handler-onchange">onchange</code></li>
    <li><code title="handler-onclick">onclick</code></li>
    <li><code title="handler-oncontextmenu">oncontextmenu</code></li>
-<!--KEEP-END w3c-html--><!--TT-->
    <li><code title="handler-oncuechange">oncuechange</code></li>
-<!--KEEP-START w3c-html--><!--TT-->
    <li><code title="handler-ondblclick">ondblclick</code></li>
    <li><code title="handler-ondrag">ondrag</code></li>
    <li><code title="handler-ondragend">ondragend</code></li>
    <li><code title="handler-ondragenter">ondragenter</code></li>
    <li><code title="handler-ondragleave">ondragleave</code></li>
    <li><code title="handler-ondragover">ondragover</code></li>
    <li><code title="handler-ondragstart">ondragstart</code></li>
    <li><code title="handler-ondrop">ondrop</code></li>
    <li><code title="handler-ondurationchange">ondurationchange</code></li>
    <li><code title="handler-onemptied">onemptied</code></li>
@@ -27176,36 +27170,32 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
   <dl class="element">
    <dt>Categories</dt>
    <dd><span>Flow content</span>.</dd>
    <dd><span>Phrasing content</span>.</dd>
    <dd><span>Embedded content</span>.</dd>
    <dd>If the element has a <code title="attr-media-controls">controls</code> attribute: <span>Interactive content</span>.</dd>
    <dt>Contexts in which this element can be used:</dt>
    <dd>Where <span>embedded content</span> is expected.</dd>
    <dt>Content model:</dt>
    <dd>If the element has a <code title="attr-media-src">src</code> attribute:
-<!--KEEP-END w3c-html--><!--TT-->
  zero or more <code>track</code> elements, then
-<!--KEEP-START w3c-html--><!--TT-->
  <span>transparent</span>, but with no <span>media element</span> descendants.</dd>
    <dd>If the element does not have a <code title="attr-media-src">src</code> attribute: zero or more <code>source</code> elements, then
-<!--KEEP-END w3c-html--><!--TT-->
  zero or more <code>track</code> elements, then
-<!--KEEP-START w3c-html--><!--TT-->
  <span>transparent</span>, but with no <span>media element</span> descendants.</dd>
    <dt>Content attributes:</dt>
    <dd><span>Global attributes</span></dd>
    <dd><code title="attr-media-src">src</code></dd>
    <dd><code title="attr-video-poster">poster</code></dd>
    <dd><code title="attr-media-preload">preload</code></dd>
    <dd><code title="attr-media-autoplay">autoplay</code></dd>
-<!--END w3c-html--><!--CONTROLLER-->   <dd><code title="attr-media-mediagroup">mediagroup</code></dd><!--START w3c-html--><!--CONTROLLER-->
+   <dd><code title="attr-media-mediagroup">mediagroup</code></dd>
    <dd><code title="attr-media-loop">loop</code></dd>
    <dd><code title="attr-media-muted">muted</code></dd>
    <dd><code title="attr-media-controls">controls</code></dd>
    <dd><code title="attr-dim-width">width</code></dd>
    <dd><code title="attr-dim-height">height</code></dd>
    <dt>DOM interface:</dt>
    <dd>
     <pre class="idl">interface <dfn>HTMLVideoElement</dfn> : <span>HTMLMediaElement</span> {
            attribute unsigned long <span title="dom-dim-width">width</span>;
            attribute unsigned long <span title="dom-dim-height">height</span>;
@@ -27234,23 +27224,21 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
   subtitle tracks, audio description tracks, or sign-language
   overlays) into their media streams.</p>
 
   <p>The <code>video</code> element is a <span>media element</span>
   whose <span>media data</span> is ostensibly video data, possibly
   with associated audio data.</p>
 
   <p>The <code title="attr-media-src">src</code>, <code
   title="attr-media-preload">preload</code>, <code
   title="attr-media-autoplay">autoplay</code>, 
-<!--END w3c-html--><!--CONTROLLER-->
   <code title="attr-media-mediagroup">mediagroup</code>, 
-<!--START w3c-html--><!--CONTROLLER-->
   <code title="attr-media-loop">loop</code>,
   <code title="attr-media-muted">muted</code>, and <code
   title="attr-media-controls">controls</code> attributes are <span
   title="media element attributes">the attributes common to all media
   elements</span>.</p>
 
   <p>The <dfn title="attr-video-poster"><code>poster</code></dfn>
   attribute gives the address of an image file that the user agent can
   show while no video data is available. The attribute, if present,
   must contain a <span>valid non-empty URL potentially surrounded by
@@ -27354,28 +27342,26 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
   <p>When a <code>video</code> element whose <span>media
   resource</span> has a video channel is neither <span>potentially
   playing</span> nor <span title="dom-media-paused">paused</span>
   (e.g. when seeking or stalled), the element <span>represents</span>
   the last frame of the video to have been rendered.</p>
 
   <p class="note">Which frame in a video stream corresponds to a
   particular playback position is defined by the video stream's
   format.</p>
 
-<!--KEEP-END w3c-html--><!--TT-->
   <p>The <code>video</code> element also <span>represents</span> any
   <span title="text track cue">text track cues</span> whose
   <span>text track cue active flag</span> is set and whose
   <span>text track</span> is in the <span title="text track
   showing">showing</span> or <span title="text track showing by
   default">showing by default</span> modes.</p>
-<!--KEEP-START w3c-html--><!--TT-->
 
   <p>In addition to the above, the user agent may provide messages to
   the user (such as "buffering", "no video loaded", "error", or more
   detailed information) by overlaying text or icons on the video or
   other areas of the element's playback area, or in another
   appropriate manner.</p>
 
   <p>User agents that cannot render the video may instead make the
   element <span title="represents">represent</span> a link to an
   external video playback utility or to the video data itself.</p>
@@ -27557,35 +27543,31 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
   <dl class="element">
    <dt>Categories</dt>
    <dd><span>Flow content</span>.</dd>
    <dd><span>Phrasing content</span>.</dd>
    <dd><span>Embedded content</span>.</dd>
    <dd>If the element has a <code title="attr-media-controls">controls</code> attribute: <span>Interactive content</span>.</dd>
    <dt>Contexts in which this element can be used:</dt>
    <dd>Where <span>embedded content</span> is expected.</dd>
    <dt>Content model:</dt>
    <dd>If the element has a <code title="attr-media-src">src</code> attribute: 
-<!--KEEP-END w3c-html--><!--TT-->
 zero or more <code>track</code> elements, then 
-<!--KEEP-START w3c-html--><!--TT-->
 <span>transparent</span>, but with no <span>media element</span> descendants.</dd>
    <dd>If the element does not have a <code title="attr-media-src">src</code> attribute: one or more <code>source</code> elements, then
-<!--KEEP-END w3c-html--><!--TT-->
  zero or more <code>track</code> elements, then
-<!--KEEP-START w3c-html--><!--TT-->
  <span>transparent</span>, but with no <span>media element</span> descendants.</dd>
    <dt>Content attributes:</dt>
    <dd><span>Global attributes</span></dd>
    <dd><code title="attr-media-src">src</code></dd>
    <dd><code title="attr-media-preload">preload</code></dd>
    <dd><code title="attr-media-autoplay">autoplay</code></dd>
-<!--END w3c-html--><!--CONTROLLER-->   <dd><code title="attr-media-mediagroup">mediagroup</code></dd><!--START w3c-html--><!--CONTROLLER-->
+   <dd><code title="attr-media-mediagroup">mediagroup</code></dd>
    <dd><code title="attr-media-loop">loop</code></dd>
    <dd><code title="attr-media-muted">muted</code></dd>
    <dd><code title="attr-media-controls">controls</code></dd>
    <dt>DOM interface:</dt>
    <dd>
     <pre class="idl">[NamedConstructor=<span title="dom-Audio">Audio</span>(),
  NamedConstructor=<span title="dom-Audio-s">Audio</span>(in DOMString src)]
 interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    </dd>
   </dl>
@@ -27623,23 +27605,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   authors are expected to provide alternative media streams and/or to
   embed accessibility aids (such as transcriptions) into their media
   streams.</p>
 
   <p>The <code>audio</code> element is a <span>media element</span>
   whose <span>media data</span> is ostensibly audio data.</p>
 
   <p>The <code title="attr-media-src">src</code>, <code
   title="attr-media-preload">preload</code>, <code
   title="attr-media-autoplay">autoplay</code>, 
-<!--END w3c-html--><!--CONTROLLER-->
   <code title="attr-media-mediagroup">mediagroup</code>,
-<!--START w3c-html--><!--CONTROLLER-->
   <code title="attr-media-loop">loop</code>,
   <code title="attr-media-muted">muted</code>, and <code
   title="attr-media-controls">controls</code> attributes are <span
   title="media element attributes">the attributes common to all media
   elements</span>.</p>
 
   <div class="impl">
 
   <p>When an <code>audio</code> element is <span>potentially
   playing</span>, it must have its audio data played synchronized with
@@ -27723,23 +27703,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
 
 
   <h4>The <dfn><code>source</code></dfn> element</h4>
 
   <dl class="element">
    <dt>Categories</dt>
    <dd>None.</dd>
    <dt>Contexts in which this element can be used:</dt>
    <dd>As a child of a <span>media element</span>, before any <span>flow content</span>
-<!--KEEP-END w3c-html--><!--TT-->
  or <code>track</code> elements.</dd>
-<!--KEEP-START w3c-html--><!--TT-->
    <dt>Content model:</dt>
    <dd>Empty.</dd>
    <dt>Content attributes:</dt>
    <dd><span>Global attributes</span></dd>
    <dd><code title="attr-source-src">src</code></dd>
    <dd><code title="attr-source-type">type</code></dd>
    <dd><code title="attr-source-media">media</code></dd>
    <dt>DOM interface:</dt>
    <dd>
 <pre class="idl">interface <dfn>HTMLSourceElement</dfn> : <span>HTMLElement</span> {
@@ -27927,23 +27905,20 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
  &lt;source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
  &lt;source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'
          onerror="fallback(parentNode)">
  ...
 &lt;/video></pre>
 
   </div>
 
 
 
-<!--KEEP-END w3c-html--><!--TT-->
-<!--<div data-component="other Hixie drafts (editor: Ian Hickson)">-->
-
   <h4>The <dfn><code>track</code></dfn> element</h4>
 
   <dl class="element">
    <dt>Categories</dt>
    <dd>None.</dd>
    <dt>Contexts in which this element can be used:</dt>
    <dd>As a child of a <span>media element</span>, before any <span>flow content</span>.</dd>
    <dt>Content model:</dt>
    <dd>Empty.</dd>
    <dt>Content attributes:</dt>
@@ -28135,22 +28110,20 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
    <pre>&lt;video src="brave.webm">
  &lt;track kind=subtitles src=brave.en.vtt srclang=en label="English">
  &lt;track kind=captions src=brave.en.vtt srclang=en label="English for the Hard of Hearing">
  &lt;track kind=subtitles src=brave.fr.vtt srclang=fr label="Fran&ccedil;ais">
  &lt;track kind=subtitles src=brave.de.vtt srclang=de label="Deutsch">
 &lt;/video></pre>
 
   </div>
 
-<!--</div>-->
-<!--KEEP-START w3c-html--><!--TT-->
 
 
   <h4>Media elements</h4>
 
   <p><dfn title="media element">Media elements</dfn>
   (<code>audio</code> and <code>video</code>, in this specification)
   implement the following interface:</p>
 
   <pre class="idl">interface <dfn>HTMLMediaElement</dfn> : <span>HTMLElement</span> {
 
@@ -28189,48 +28162,43 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   readonly attribute boolean <span title="dom-media-paused">paused</span>;
            attribute double <span title="dom-media-defaultPlaybackRate">defaultPlaybackRate</span>;
            attribute double <span title="dom-media-playbackRate">playbackRate</span>;
   readonly attribute <span>TimeRanges</span> <span title="dom-media-played">played</span>;
   readonly attribute <span>TimeRanges</span> <span title="dom-media-seekable">seekable</span>;
   readonly attribute boolean <span title="dom-media-ended">ended</span>;
            attribute boolean <span title="dom-media-autoplay">autoplay</span>;
            attribute boolean <span title="dom-media-loop">loop</span>;
   void <span title="dom-media-play">play</span>();
   void <span title="dom-media-pause">pause</span>();
-<!--END w3c-html--><!--CONTROLLER-->
+
   // media controller
            attribute <span>DOMString</span> <span title="dom-media-mediaGroup">mediaGroup</span>;
-           attribute <span>MediaController</span> <span title="dom-media-controller">controller</span>;<!--START w3c-html--><!--CONTROLLER-->
+           attribute <span>MediaController</span> <span title="dom-media-controller">controller</span>;
 
   // controls
            attribute boolean <span title="dom-media-controls">controls</span>;
            attribute double <span title="dom-media-volume">volume</span>;
            attribute boolean <span title="dom-media-muted">muted</span>;
            attribute boolean <span title="dom-media-defaultMuted">defaultMuted</span>;
-<!--KEEP-END w3c-html--><!--TT-->
+
   // tracks
-<!--END w3c-html--><!--CONTROLLER-->
   readonly attribute <span>MultipleTrackList</span> <span title="dom-media-audioTracks">audioTracks</span>;
   readonly attribute <span>ExclusiveTrackList</span> <span title="dom-media-videoTracks">videoTracks</span>;
-<!--START w3c-html--><!--CONTROLLER-->
   readonly attribute <span>TextTrack</span>[] <span title="dom-media-textTracks">textTracks</span>;
   <span>MutableTextTrack</span> <span title="dom-media-addTextTrack">addTextTrack</span>(in DOMString kind, in optional DOMString label, in optional DOMString language);
-<!--KEEP-START w3c-html--><!--TT-->
 };</pre>
 
   <p>The <dfn>media element attributes</dfn>, <code
   title="attr-media-src">src</code>, <code
   title="attr-media-preload">preload</code>, <code
   title="attr-media-autoplay">autoplay</code>, 
-<!--END w3c-html--><!--CONTROLLER-->
   <code title="attr-media-mediagroup">mediagroup</code>, 
-<!--START w3c-html--><!--CONTROLLER-->
   <code title="attr-media-loop">loop</code>,
   <code title="attr-media-muted">muted</code>, and <code
   title="attr-media-controls">controls</code>, apply to all <span
   title="media element">media elements</span>. They are defined in
   this section.</p>
 
   <!-- proposed v2 (actually v3!) features:
     * frame forward / backwards / step(n) while paused
     * per-frame control: get current frame; set current frame
     * queue of content
@@ -28265,31 +28233,29 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   -->
 
   <p><span title="media element">Media elements</span> are used to
   present audio data, or video and audio data, to the user. This is
   referred to as <dfn>media data</dfn> in this section, since this
   section applies equally to <span title="media element">media
   elements</span> for audio or for video. The term <dfn>media
   resource</dfn> is used to refer to the complete set of media data,
   e.g. the complete video file, or complete audio file.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>A <span>media resource</span> can have multiple audio and video
   tracks. For the purposes of a <span>media element</span>, the video
   data of the <span>media resource</span> is only that of the
   currently selected track (if any) given by the element's <code
   title="dom-media-videoTracks">videoTracks</code> attribute, and the
   audio data of the <span>media resource</span> is the result of
   mixing all the currently enabled tracks (if any) given by the
   element's <code title="dom-media-audioTracks">audioTracks</code>
   attribute.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <p class="note">Both <code>audio</code> and <code>video</code>
   elements can be used for both audio and video. The main difference
   between the two is simply that the <code>audio</code> element has no
   playback area for visual content (such as video or captions),
   whereas the <code>video</code> element does.</p>
 
   <div class="impl">
 
   <p>Except where otherwise specified, the <span>task source</span>
@@ -28710,24 +28676,22 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
      element</span>.</p></li>
 
      <li><p>If a fetching process is in progress for the <span>media
      element</span>, the user agent should stop it.</p></li>
 
      <li><p>Set the <code
      title="dom-media-networkState">networkState</code> attribute to
      <code
      title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>.</p></li>
 
-<!--KEEP-END w3c-html--><!--TT-->
      <li><p><span>Forget the media element's media-resource-specific
      text tracks</span>.</p></li>
-<!--KEEP-START w3c-html--><!--TT-->
 
      <li><p>If <code title="dom-media-readyState">readyState</code> is
      not set to <code
      title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, then set it
      to that state.
      <!-- this can do the "report the controller state" thing -->
      </p></li>
 
      <li><p>If the <code title="dom-media-paused">paused</code>
      attribute is false, then set it to true.</p></li>
@@ -28898,24 +28862,22 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
       atomic operation, run the following steps:</p>
 
       <ol>
 
        <li><p>Set the <code title="dom-media-error">error</code>
        attribute to a new <code>MediaError</code> object whose <code
        title="dom-MediaError-code">code</code> attribute is set to
        <code
        title="dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED">MEDIA_ERR_SRC_NOT_SUPPORTED</code>.</p></li>
 
-<!--KEEP-END w3c-html--><!--TT-->
        <li><p><span>Forget the media element's media-resource-specific
        text tracks</span>.</p></li>
-<!--KEEP-START w3c-html--><!--TT-->
 
        <li><p>Set the element's <code
        title="dom-media-networkState">networkState</code> attribute to
        the <span
        title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</span>
        value.</p></li>
 
       </ol>
 
      </li>
@@ -29051,24 +29013,22 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
      title="concept-media-load-resource">resource fetch
      algorithm</span>.</p></li>
 
      <li><p>Asynchronously <span>await a stable state</span>. The
      <span>synchronous section</span> consists of all the remaining
      steps of this algorithm until the algorithm says the
      <span>synchronous section</span> has ended. (Steps in <span
      title="synchronous section">synchronous sections</span> are
      marked with &#x231B;.)</p></li>
 
-<!--KEEP-END w3c-html--><!--TT-->
      <li><p>&#x231B; <span>Forget the media element's
      media-resource-specific text tracks</span>.</p></li>
-<!--KEEP-START w3c-html--><!--TT-->
 
      <li><p>&#x231B; <i title="">Find next candidate</i>: Let <var
      title="">candidate</var> be null.</p></li>
 
      <li><p>&#x231B; <i title="">Search loop</i>: If the node after
      <var title="">pointer</var> is the end of the list, then jump to
      the <i title="">waiting</i> step below.</p></li>
 
      <li><p>&#x231B; If the node after <var title="">pointer</var> is
      a <code>source</code> element, let <var title="">candidate</var>
@@ -29251,23 +29211,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
      <!-- insert content sniffing here if we want to define that -->
      <!-- (in practice I don't think that's necessary since it's not
      like you can do anything with the resource if you sniff it as the
      wrong type) -->
 
 
      <dt id="getting-media-metadata">Once enough of the <span>media
      data</span> has been fetched to determine the duration of the
      <span>media resource</span>, its dimensions, and other
      metadata,
-<!--KEEP-END w3c-html--><!--TT-->
      and once <span>the text tracks are ready</span>
-<!--KEEP-START w3c-html--><!--TT-->
      </dt>
 
      <dd>
 
       <p>This indicates that the resource is usable. The user agent
       must follow these substeps:</p>
 
       <ol>
 
        <li>
@@ -29349,21 +29307,20 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
         ignored).</p>
 
         <p class="example">For example, with media formats that
         support the <cite>Media Fragments URI</cite> fragment
         identifier syntax, the fragment identifier can be used to
         indicate a start position. <a
         href="#refsMEDIAFRAG">[MEDIAFRAG]</a></p>
 
        </li>
 
-<!--END w3c-html--><!--CONTROLLER-->
        <li><p>If either the <span>media resource</span> or the address
        of the <var title="">current media resource</var> indicate a
        particular set of audio or video tracks to enable, then the
        selected audio tracks must be enabled in the element's <code
        title="dom-media-audioTracks">audioTracks</code> object, and
        the first selected video track must be selected in the
        element's <code
        title="dom-media-videoTracks">videoTracks</code>
        object.</p></li>
 
@@ -29381,21 +29338,20 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
        relative to the <span>media element</span>'s timeline,
        discarding any resulting exceptions.</p></li> <!-- i.e. "bring
        the media element up to speed with its new media controller"
        --> <!-- we do this because otherwise the fragment identifier
        initial position is lost. Basically this means that if you are
        attached to a media controller when you load your resource, and
        you have a fragment identifier with a start time, you'll jump
        the media controller to that time if it's not already past it.
        (So if there are several, you'll jump the media controller to
        the furthest one in the timeline.) -->
-<!--START w3c-html--><!--CONTROLLER-->
 
        <li>
 
         <p>Once the <code
         title="dom-media-readyState">readyState</code> attribute
         reaches <code
         title="dom-media-HAVE_CURRENT_DATA">HAVE_CURRENT_DATA</code>,
         <a href="#fire-loadeddata">after the <code
         title="event-media-loadeddata">loadeddata</code> event has been
         fired</a>, set the element's <span>delaying-the-load-event
@@ -29603,39 +29559,37 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
       <p>The server returning data that is partially usable but cannot
       be optimally rendered must cause the user agent to render just
       the bits it can handle, and ignore the rest.</p>
 
       <!-- v2: fire a 'warning' event and set the 'error' flag to 'MEDIA_ERR_SUBOPTIMAL' or something -->
 
      </dd>
 
 
-<!--KEEP-END w3c-html--><!--TT-->
      <dt id="found-a-media-resource-specific-timed-track">If the <span>media resource</span> is found to declare a <span>media-resource-specific text track</span> that the user agent supports</dt>
 
      <dd>
 
       <p>If the <span>media resource</span>'s <span>origin</span> is
       the <span>same origin</span> as the <span>media element</span>'s
       <code>Document</code>'s <span>origin</span>, <span>queue a
       task</span> to run the <span>steps to expose a
       media-resource-specific text track</span> with the relevant
       data.</p> <!-- CORS -->
 
       <p class="note">Cross-origin files do not expose their subtitles
       in the DOM, for security reasons. However, user agents may still
       provide the user with access to such data in their user
       interface.</p>
 
      </dd>
-<!--KEEP-START w3c-html--><!--TT-->
 
     </dl>
 
     <p>When the <span>networking task source</span> has <span
     title="queue a task">queued</span> the last <span
     title="concept-task">task</span> as part of <span
     title="fetch">fetching</span> the <span>media resource</span>
     (i.e. once the download has completed), if the fetching process
     completes without errors, including decoding the media data, and
     if all of the data is available to the user agent without network
@@ -29810,23 +29764,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    <dt><var title="">media</var> . <code title="dom-media-currentTime">currentTime</code> [ = <var title="">value</var> ]</dt>
 
    <dd>
 
     <p>Returns the <span>current playback position</span>, in seconds.</p>
 
     <p>Can be set, to seek to the given time.<p>
 
     <p>Will throw an <code>INVALID_STATE_ERR</code> exception if there
     is no selected <span>media resource</span>
-<!--END w3c-html--><!--CONTROLLER-->
     or if there is a <span>current media controller</span>.
-<!--START w3c-html--><!--CONTROLLER-->
     Will throw an
     <code>INDEX_SIZE_ERR</code> exception if the given time is not
     within the ranges to which the user agent can seek.</p>
 
    </dd>
 
    <dt><var title="">media</var> . <code title="dom-media-initialTime">initialTime</code></dt>
 
    <dd>
 
@@ -29914,41 +29866,37 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
   <p>In any case, the user agent must ensure that the <span>earliest
   possible position</span> (as defined below) using the established
   <span>media timeline</span>, is greater than or equal to zero.</p>
 
   <p>The <span>media timeline</span> also has an associated clock.
   Which clock is used is user-agent defined, and may be <span>media
   resource</span>-dependent, but it should approximate the user's wall
   clock.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p class="note">All the <span title="media element">media
   elements</span> that share <span>current media controller</span> use
   the same clock for their <span>media timeline</span>.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <p><span title="media element">Media elements</span> have a
   <dfn>current playback position</dfn>, which must initially (i.e. in
   the absence of <span>media data</span>) be zero seconds. The
   <span>current playback position</span> is a time on the <span>media
   timeline</span>.</p>
 
   <p>The <dfn
   title="dom-media-currentTime"><code>currentTime</code></dfn>
   attribute must, on getting, return the <span>current playback
   position</span>, expressed in seconds. On setting,
-<!--END w3c-html--><!--CONTROLLER-->
   if the <span>media element</span> has a <span>current media
   controller</span>, then it must throw an
   <code>INVALID_STATE_ERR</code> exception; otherwise,
-<!--START w3c-html--><!--CONTROLLER-->
   the user agent
   must <span title="dom-media-seek">seek</span> to the new value
   (which might raise an exception).</p>
 
   <p><span title="media element">Media elements</span> have an
   <dfn>initial playback position</dfn>, which must initially (i.e. in
   the absence of <span>media data</span>) be zero seconds. The
   <span>initial playback position</span> is updated when a <span>media
   resource</span> is loaded. The <span>initial playback
   position</span> is a time on the <span>media timeline</span>.</p>
@@ -30040,25 +29988,23 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
   </div>
 
   <hr>
 
   <p>The <dfn title="attr-media-loop"><code>loop</code></dfn>
   attribute is a <span>boolean attribute</span> that, if specified,
   indicates that the <span>media element</span> is to seek back to the
   start of the <span>media resource</span> upon reaching the end.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>The <code title="attr-media-loop">loop</code> attribute has no
   effect while the element has a <span>current media
   controller</span>.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <div class="impl">
 
   <p>The <dfn title="dom-media-loop"><code>loop</code></dfn> IDL
   attribute must <span>reflect</span> the content attribute of the
   same name.</p>
 
   </div>
 
 
@@ -30104,24 +30050,22 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    state.</dd>
 
    <dt><dfn title="dom-media-HAVE_METADATA"><code>HAVE_METADATA</code></dfn> (numeric value 1)</dt>
 
    <dd>Enough of the resource has been obtained that the duration of
    the resource is available. In the case of a <code>video</code>
    element, the dimensions of the video are also available. The API
    will no longer raise an exception when seeking. No <span>media
    data</span> is available for the immediate <span>current playback
    position</span>.
-<!--KEEP-END w3c-html--><!--TT-->
    The <span title="text track">text tracks</span>
    are <span title="the text tracks are ready">ready</span>.
-<!--KEEP-START w3c-html--><!--TT-->
    </dd>
 
    <dt><dfn title="dom-media-HAVE_CURRENT_DATA"><code>HAVE_CURRENT_DATA</code></dfn> (numeric value 2)</dt>
 
    <dd>Data for the immediate <span>current playback position</span>
    is available, but either not enough data is available that the user
    agent could successfully advance the <span>current playback
    position</span> in the <span>direction of playback</span> at all
    without immediately reverting to the <code
    title="dom-media-HAVE_METADATA">HAVE_METADATA</code> state, or
@@ -30299,26 +30243,24 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
       <p>In any case, the user agent must finally <span>queue a
       task</span> to <span>fire a simple event</span> named <code
       title="event-media-canplaythrough">canplaythrough</code>.</p>
 
      </dd>
 
     </dl>
 
    </li>
 
-<!--END w3c-html--><!--CONTROLLER-->
    <li><p>If the <span>media element</span> has a <span>current media
    controller</span>, then <span>report the controller state</span>
    for the <span>media element</span>'s <span>current media
    controller</span>.</p></li>
-<!--START w3c-html--><!--CONTROLLER-->
 
   </ol>
 
   </div>
 
   <p class="note">It is possible for the ready state of a media
   element to jump between these states discontinuously. For example,
   the state of a media element can jump straight from <code
   title="dom-media-HAVE_METADATA">HAVE_METADATA</code> to <code
   title="dom-media-HAVE_ENOUGH_DATA">HAVE_ENOUGH_DATA</code> without
@@ -30390,48 +30332,44 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
     fast-forwarding or reversing through the <span>media
     resource</span>.</p>
 
     <p>Can be set, to change the default rate of playback.</p>
 
     <p>The default rate has no direct effect on playback, but if the
     user switches to a fast-forward mode, when they return to the
     normal playback mode, it is expected that the rate of playback
     will be returned to the default rate of playback.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
     <p>When the element has a <span>current media controller</span>,
     the <code
     title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code>
     attribute is ignored and the <span>current media
     controller</span>'s <code
     title="dom-MediaController-defaultPlaybackRate">defaultPlaybackRate</code>
     is used instead.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
    </dd>
 
    <dt><var title="">media</var> . <code title="dom-media-playbackRate">playbackRate</code> [ = <var title="">value</var> ]</dt>
 
    <dd>
 
     <p>Returns the current rate playback, where 1.0 is normal speed.</p>
 
     <p>Can be set, to change the rate of playback.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
     <p>When the element has a <span>current media controller</span>,
     the <code title="dom-media-playbackRate">playbackRate</code>
     attribute is ignored and the <span>current media
     controller</span>'s <code
     title="dom-MediaController-playbackRate">playbackRate</code> is
     used instead.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
    </dd>
 
    <dt><var title="">media</var> . <code title="dom-media-played">played</code></dt>
 
    <dd>
 
     <p>Returns a <code>TimeRanges</code> object that represents the
     ranges of the <span>media resource</span> that the user agent has
     played.</p>
@@ -30471,25 +30409,23 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   title="dom-media-readyState">readyState</code> attribute is in the
   <code title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code> state or
   the <code title="dom-media-HAVE_METADATA">HAVE_METADATA</code>
   state, or if the element has <span>paused for user
   interaction</span>.</p>
 
   <p>A <span>media element</span> is said to be <dfn>potentially
   playing</dfn> when its <code title="dom-media-paused">paused</code>
   attribute is false, the element has not <span>ended playback</span>,
   playback has not <span>stopped due to errors</span>, 
-<!--END w3c-html--><!--CONTROLLER-->
   the element either has no <span>current media controller</span> or
   has a <span>current media controller</span> but is not <span>blocked
   on its media controller</span>,
-<!--START w3c-html--><!--CONTROLLER-->
   and the element is not a <span>blocked media element</span>.</p>
 
   <p>A <span>media element</span> is said to have <dfn>ended
   playback</dfn> when:</p>
 
   <ul>
 
    <li>The element's <code
    title="dom-media-readyState">readyState</code> attribute is <code
    title="dom-media-HAVE_METADATA">HAVE_METADATA</code> or greater,
@@ -30500,29 +30436,25 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
     <p>Either:
 
     <ul>
 
      <li>The <span>current playback position</span> is the end of the
      <span>media resource</span>, and
 
      <li>The <span>direction of playback</span> is forwards, and
 
      <li>
-<!--END w3c-html--><!--CONTROLLER-->
      Either
-<!--START w3c-html--><!--CONTROLLER-->
      the <span>media element</span> does not have a <code
      title="attr-media-loop">loop</code> attribute specified,
-<!--END w3c-html--><!--CONTROLLER-->
      or the <span>media element</span> has a <span>current media
      controller</span>.
-<!--START w3c-html--><!--CONTROLLER-->
 
     </ul>
 
     <p>Or:
 
     <ul>
 
      <li>The <span>current playback position</span> is the
      <span>earliest possible position</span>, and
 
@@ -30550,31 +30482,29 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
   <p>A <span>media element</span> is said to have <dfn>paused for user
   interaction</dfn> when its <code
   title="dom-media-paused">paused</code> attribute is false, the <code
   title="dom-media-readyState">readyState</code> attribute is either
   <code title="dom-media-HAVE_FUTURE_DATA">HAVE_FUTURE_DATA</code> or
   <code title="dom-media-HAVE_ENOUGH_DATA">HAVE_ENOUGH_DATA</code> and
   the user agent has reached a point in the <span>media
   resource</span> where the user has to make a selection for the
   resource to continue.
-<!--END w3c-html--><!--CONTROLLER-->
   If the <span>media element</span> has a <span>current media
   controller</span> when this happens, then the user agent must
   <span>report the controller state</span> for the <span>media
   element</span>'s <span>current media controller</span>. If If the
   <span>media element</span> has a <span>current media
   controller</span> when the user makes a selection, allowing playback
   to resume, the user agent must similarly <span>report the controller
   state</span> for the <span>media element</span>'s <span>current
   media controller</span>.
-<!--START w3c-html--><!--CONTROLLER-->
   </p>
 
   <p>It is possible for a <span>media element</span> to have both
   <span>ended playback</span> and <span>paused for user
   interaction</span> at the same time.</p>
 
   <p>When a <span>media element</span> that is <span>potentially
   playing</span> stops playing because it has <span>paused for user
   interaction</span>, the user agent must <span>queue a task</span> to
   <span>fire a simple event</span> named <code
@@ -30590,23 +30520,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
   <p>When the <span>current playback position</span> reaches the end
   of the <span>media resource</span> when the <span>direction of
   playback</span> is forwards, then the user agent must follow these
   steps:</p>
 
   <ol>
 
    <li><p>If the <span>media element</span> has a <code
    title="attr-media-loop">loop</code> attribute specified
-<!--END w3c-html--><!--CONTROLLER-->
    and does not have a <span>current media controller</span>,
-<!--START w3c-html--><!--CONTROLLER-->
    then <span title="dom-media-seek">seek</span> to the <span>earliest
    possible position</span> of the <span>media resource</span> and
    abort these steps.</p></li> <!-- v2/v3: We should fire a 'looping'
    event here to explain why this immediately fires a 'playing' event,
    otherwise the 'playing' event that fires from the readyState going
    from HAVE_CURRENT_DATA back to HAVE_FUTURE_DATA will seem
    inexplicable (since the normally matching 'ended' given below event
    doesn't fire in the loop case). -->
 
    <li><p>Stop playback.</p><p class="note">The <code
@@ -30649,56 +30577,50 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   the attribute must be set to the new value.</p>
 
   <p class="note">The <code
   title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code> is
   used by the user agent when it <span title="expose a user interface
   to the user">exposes a user interface to the user</span>.</p>
 
   <p>The <dfn
   title="dom-media-playbackRate"><code>playbackRate</code></dfn>
   attribute gives the <span>effective playback rate</span>
-<!--END w3c-html--><!--CONTROLLER-->
   (assuming there is no <span>current media controller</span> overriding it),
-<!--START w3c-html--><!--CONTROLLER-->
   which is the speed at which the <span>media resource</span> plays,
   as a multiple of its intrinsic speed. If it is not equal to the
   <code
   title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code>,
   then the implication is that the user is using a feature such as
   fast forward or slow motion playback. The attribute is mutable: on
   getting it must return the last value it was set to, or 1.0 if it
   hasn't yet been set; on setting the attribute must be set to the new
   value, and the playback will change speed
-<!--END w3c-html--><!--CONTROLLER-->
   (if the element is <span>potentially playing</span> and there is no
   <span>current media controller</span>).</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <p id="rateUpdate">When the <code
   title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code> or
   <code title="dom-media-playbackRate">playbackRate</code> attributes
   change value (either by being set by script or by being changed
   directly by the user agent, e.g. in response to user control) the
   user agent must <span>queue a task</span> to <span>fire a simple
   event</span> named <code
   title="event-media-ratechange">ratechange</code> at the <span>media
   element</span>.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p class="note">The <code
   title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code> and
   <code title="dom-media-playbackRate">playbackRate</code> attributes
   have no effect when the <span>media element</span> has a
   <span>current media controller</span>; the namesake attributes on
   the <code>MediaController</code> object are used instead in that
   situation.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <hr>
 
   <p>The <dfn title="dom-media-played"><code>played</code></dfn>
   attribute must return a new static <span>normalized
   <code>TimeRanges</code> object</span> that represents the ranges of
   the <span>media resource</span>, if any, that the user agent has so
   far rendered, at the time the attribute is evaluated.</p>
 
   <hr>
@@ -30714,41 +30636,37 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    the value <code
    title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>, invoke the
    <span>media element</span>'s <span
    title="concept-media-load-algorithm">resource selection
    algorithm</span>.</p></li>
 
    <li>
 
     <p>If the <span title="ended playback">playback has ended</span>
     and the <span>direction of playback</span> is forwards,
-<!--END w3c-html--><!--CONTROLLER-->
     and the <span>media element</span> does not have a <span>current
     media controller</span>,
-<!--START w3c-html--><!--CONTROLLER-->
     <span title="dom-media-seek">seek</span> to the <span>earliest
     possible position</span> of the <span>media resource</span>.</p>
 
     <p class="note">This <a href="#seekUpdate">will cause</a> the user
     agent to <span>queue a task</span> to <span>fire a simple
     event</span> named <code
     title="event-media-timeupdate">timeupdate</code> at the <span>media
     element</span>.</p> <!-- if we're already playing at this point,
     it might also fire 'waiting' -->
 
    </li>
 
-<!--END w3c-html--><!--CONTROLLER-->
    <li><p>If the <span>media element</span> has a <span>current
    media controller</span>, then <span>bring the media element up
    to speed with its new media controller</span>.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
    <li>
 
     <p>If the <span>media element</span>'s <code
     title="dom-media-paused">paused</code> attribute is true, run
     the following substeps:</p>
 
     <ol>
 
      <li><p>Change the value of <code
@@ -30781,26 +30699,24 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
      </li>
 
     </ol>
 
    </li>
 
    <li><p>Set the <span>media element</span>'s <span>autoplaying
    flag</span> to false.</p></li>
 
-<!--END w3c-html--><!--CONTROLLER-->
    <li><p>If the <span>media element</span> has a <span>current media
    controller</span>, then <span>report the controller state</span>
    for the <span>media element</span>'s <span>current media
    controller</span>.</p></li>
-<!--START w3c-html--><!--CONTROLLER-->
 
   </ol>
 
   <hr>
 
   <p>When the <dfn title="dom-media-pause"><code>pause()</code></dfn>
   method is invoked, and when the user agent is required to pause the
   <span>media element</span>, the user agent must run the following
   steps:</p>
 
@@ -30832,46 +30748,40 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
      element.</p></li>
 
      <li><p><span>Queue a task</span> to <span>fire a simple
      event</span> named <code title="event-media-pause">pause</code>
      at the element.</p></li>
 
     </ol>
 
    </li>
 
-<!--END w3c-html--><!--CONTROLLER-->
    <li><p>If the <span>media element</span> has a <span>current media
    controller</span>, then <span>report the controller state</span>
    for the <span>media element</span>'s <span>current media
    controller</span>.</p></li>
-<!--START w3c-html--><!--CONTROLLER-->
 
   </ol>
 
   <hr>
 
   <p>The
-<!--END w3c-html--><!--CONTROLLER-->
   <dfn>effective playback rate</dfn> is not necessarily the element's
   <code title="dom-media-playbackRate">playbackRate</code>. When a
   <span>media element</span> has a <span>current media
   controller</span>, its <span>effective playback rate</span> is the
   <code>MediaController</code>'s <span>media controller playback
   rate</span>. Otherwise, the
-<!--START w3c-html--><!--CONTROLLER-->
   <span>effective playback rate</span> is just the element's <code
   title="dom-media-playbackRate">playbackRate</code>.
-<!--END w3c-html--><!--CONTROLLER-->
   Thus, the <span>current media controller</span> overrides the
   <span>media element</span>.
-<!--START w3c-html--><!--CONTROLLER-->
   </p>
 
   <p>If the <span>effective playback rate</span> is positive or zero,
   then the <dfn>direction of playback</dfn> is forwards. Otherwise, it
   is backwards.</p>
 
   <p id="media-playback">When a <span>media element</span> is
   <span>potentially playing</span> and its <code>Document</code> is a
   <span>fully active</span> <code>Document</code>, its <span>current
   playback position</span> must increase monotonically at
@@ -30903,48 +30813,43 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   faithfully.</p>
 
   <p><span title="media element">Media elements</span> that are
   <span>potentially playing</span> while not <span>in a
   <code>Document</code></span> must not play any video, but should
   play any audio component. Media elements must not stop playing just
   because all references to them have been removed; only once a media
   element is in a state where no further audio could ever be played by
   that element may the element be garbage collected.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p class="note">It is possible for an element to which no explicit
   references exist to play audio, even if such an element is not still
   actively playing: for instance, it could have a <span>current media
   controller</span> that still has references and can still be
   unpaused, or it could be unpaused but stalled waiting for content to
   buffer.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <hr>
 
   <p>When the <span>current playback position</span> of a <span>media
   element</span> changes (e.g. due to playback or seeking), the user
   agent must run the following steps. If the <span>current playback
   position</span> changes while the steps are running, then the user
   agent must wait for the steps to complete, and then must immediately
   rerun the steps.
-<!--KEEP-END w3c-html--><!--TT-->
   (These steps are thus run as often as possible or needed &mdash; if
   one iteration takes a long time, this can cause certain <span
   title="text track cue">cues</span> to be skipped over as the user
   agent rushes ahead to "catch up".)
-<!--KEEP-START w3c-html--><!--TT-->
   </p>
 
   <ol>
 
-<!--KEEP-END w3c-html--><!--TT-->
    <li><p>Let <var title="">current cues</var> be an ordered list of
    <span title="text track cue">cues</span>, initialized to contain
    all the <span title="text track cue">cues</span> of all the <span
    title="text track hidden">hidden</span>, <span title="text track
    showing">showing</span>, or <span title="text track showing by
    default">showing by default</span> <span title="text track">text
    tracks</span> of the <span>media element</span> (not the <span
    title="text track disabled">disabled</span> ones) whose <span
    title="text track cue start time">start times</span> are less than
    or equal to the <span>current playback position</span> and whose
@@ -30954,21 +30859,20 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
 
    <li><p>Let <var title="">other cues</var> be an ordered list of
    <span title="text track cue">cues</span>, initialized to contain
    all the <span title="text track cue">cues</span> of <span
    title="text track hidden">hidden</span>, <span title="text track
    showing">showing</span>, and <span title="text track showing by
    default">showing by default</span> <span title="text track">text
    tracks</span> of the <span>media element</span> that are not
    present in <var title="">current cues</var>, also in <span>text
    track cue order</span>.</p></li>
-<!--KEEP-START w3c-html--><!--TT-->
 
    <li><p>If the time was reached through the usual monotonic increase
    of the <span>current playback position</span> during normal
    playback, and if the user agent has not fired a <code
    title="event-media-timeupdate">timeupdate</code> event at the
    element in the past 15 to 250ms and is not still running event
    handlers for such an event, then the user agent must <span>queue a
    task</span> to <span>fire a simple event</span> named <code
    title="event-media-timeupdate">timeupdate</code> at the element.
    (In the other cases, such as explicit seeks, relevant events get
@@ -30976,21 +30880,20 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    playback position</span>.)</p>
 
    <p class="note">The event thus is not to be fired faster than about
    66Hz or slower than 4Hz (assuming the event handlers don't take
    longer than 250ms to run). User agents are encouraged to vary the
    frequency of the event based on the system load and the average
    cost of processing the event each time, so that the UI updates are
    not any more frequent than the user agent can comfortably handle
    while decoding the video.</p></li>
 
-<!--KEEP-END w3c-html--><!--TT-->
    <li><p>If all of the <span title="text track cue">cues</span> in
    <var title="">current cues</var> have their <span>text track cue
    active flag</span> set, and none of the <span title="text track
    cue">cues</span> in <var title="">other cues</var> have their
    <span>text track cue active flag</span> set, then abort these
    steps.</p></li>
 
    <li><p>If the time was reached through the usual monotonic increase
    of the <span>current playback position</span> during normal
    playback, and there are <span title="text track cue">cues</span> in
@@ -31053,31 +30956,28 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
    rendering</span> of each of the <span title="text track">text
    tracks</span> in <var title="">affected tracks</var> that are <span
    title="text track showing">showing</span> or <span title="text
    track showing by default">showing by default</span>.
 <!--END w3c-html--><!--TTVTT-->
    For example, for <span title="text track">text tracks</span>
    based on <span>WebVTT</span>, the <span>rules for updating the
    display of WebVTT text tracks</span>.
 <!--START w3c-html--><!--TTVTT-->
    </p></li>
-<!--KEEP-START w3c-html--><!--TT-->
 
   </ol>
 
-<!--KEEP-END w3c-html--><!--TT-->
   <p>For the purposes of the algorithm above, a <span>text track
   cue</span> is considered to be part of a <span>text track</span>
   only if it is listed in the <span>text track list of cues</span>,
   not merely if it is associated with the <span>text
   track</span>.</p>
-<!--KEEP-START w3c-html--><!--TT-->
 
   <p class="note">If the <span>media element</span>'s
   <code>Document</code> stops being a <span>fully active</span>
   document, then the playback will <a href="#media-playback">stop</a>
   until the document is active again.</p>
 
   <p>When a <span>media element</span> is <span title="remove an
   element from a document">removed from a
   <code>Document</code></span>, the user agent must run
   the following steps:</p>
@@ -31267,30 +31167,27 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {};</pre>
   stream. This is the behavior seen with DVRs viewing live TV, for
   instance.</p>
 
   <p><span title="media resource">Media resources</span> might be
   internally scripted or interactive. Thus, a <span>media
   element</span> could play in a non-linear fashion. If this happens,
   the user agent must act as if the algorithm for <span
   title="dom-media-seek">seeking</span> was used whenever the
   <span>current playback position</span> changes in a discontinuous
   fashion (so that the relevant events fire).
-<!--END w3c-html--><!--CONTROLLER-->
   If the <span>media element</span> has a <span>current media
   controller</span>, then the user agent must <span>seek the media
   controller</span> appropriately instead.
-<!--START w3c-html--><!--CONTROLLER-->
   </p>
 
   </div>
 
-<!--END w3c-html--><!--CONTROLLER-->
 
   <h5>Media resources with multiple media tracks</h5>
 
   <p>A <span>media resource</span> can have multiple embedded audio
   and video tracks. For example, in addition to the primary video and
   audio tracks, a <span>media resource</span> could have
   foreign-language dubbed dialogues, director's commentaries, audio
   descriptions, alternative angles, or sign-language overlays.</p>
 
   <dl class="domintro">
@@ -32554,25 +32451,22 @@ interface <dfn>MediaController</dfn> {
   viewer to hear an intermittent commentary track.</p>
 
   (add an "autoduck" attribute that reduces the volume of other media
   elements with the same <span>current media controller</span>
   whenever this media element is playing audio)
 
    <video src="movie.vid#track=Video&amp;amp;track=English" autoplay controls mediagroup=main></video>
    <audio src="movie.vid#track=Descriptions" mediagroup=main autoduck></audio>
 -->
 
-<!--START w3c-html--><!--CONTROLLER-->
 
 
-<!--KEEP-END w3c-html--><!--TT-->
-<!--<div data-component="other Hixie drafts (editor: Ian Hickson)">-->
   <h5>Timed text tracks</h5>
 
   <h6>Text track model</h6>
 
   <p>A <span>media element</span> can have a group of associated <dfn
   title="text track">text tracks</dfn>, known as the <span>media
   element</span>'s <dfn>list of text tracks</dfn>. The <span
   title="text track">text tracks</span> are sorted as follows:</p>
 
   <ol class="brief">
@@ -33422,20 +33316,21 @@ interface <dfn>MediaController</dfn> {
    remaining steps asynchronously.</p></li>
 
    <li><p>Jump to the step labeled <i>download</i>.</p></li>
 
   </ol>
 
   </div>
 
 
 <!--END w3c-html--><!--TTVTT-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
   <div class="impl">
 
   <h6><dfn>Guidelines for exposing cues</dfn> in various formats as
   <span title="text track cue">text track cues</span></h6>
 
   <p>How a specific format's text track cues are to be interpreted
   for the purposes of processing by an HTML user agent is defined by
   that format. In the absence of such a specification, this section
   provides some constraints within which implementations can attempt
   to consistently expose such formats.</p>
@@ -33484,20 +33379,21 @@ interface <dfn>MediaController</dfn> {
     <p>If the format uses a rendering and positioning model for
     cues that can be largely simulated using the <span>WebVTT cue text
     rendering rules</span>, then these should be set to the values
     that would give the same effect for <span>WebVTT</span>
     cues. Otherwise, they should be set to zero.</p>
    </dd>
 
   </dl>
 
   </div>
+</div>
 <!--START w3c-html--><!--TTVTT-->
 
 
   <h6>Text track API</h6>
 
   <dl class="domintro">
 
    <dt><var title="">media</var> . <code title="dom-media-textTracks">textTracks</code> . <code title="">length</code></dt>
    <dd>
     <p>Returns the number of <span title="text track">text tracks</span> associated with the <span>media element</span> (e.g. from <code>track</code> elements). This is the number of <span title="text track">text tracks</span> in the <span>media element</span>'s <span>list of text tracks</span>.</p>
@@ -34381,24 +34277,24 @@ interface <dfn>TextTrackCue</dfn> {
 
   <table>
    <thead>
     <tr><th><span title="event handlers">Event handler</span> <th><span>Event handler event type</span>
    <tbody>
     <tr><td><dfn title="handler-TextTrackCue-onenter"><code>onenter</code></dfn> <td> <code title="event-enter">enter</code>
     <tr><td><dfn title="handler-TextTrackCue-onexit"><code>onexit</code></dfn> <td> <code title="event-exit">exit</code>
   </table>
 
   </div>
-<!--KEEP-START w3c-html--><!--TT-->
 
 <!--END w3c-html--><!--TTVTT-->
 <!--START webvtt-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
   <h5>WebVTT</h5>
 
   <p>The <dfn>WebVTT</dfn> format (Web Video Text Tracks) is a
   format intended for marking up external text track resources.</p>
 
 
   <h6>Syntax</h6>
 
   <p>A <dfn>WebVTT file</dfn> must consist of a <span>WebVTT file
   body</span> encoded as UTF-8 and labeled with the <span>MIME
@@ -36396,25 +36292,24 @@ interface <dfn>TextTrackCue</dfn> {
   <p>The <code title="dom-Node-ownerDocument">ownerDocument</code>
   attribute of all nodes in the DOM tree must be set to the given
   document <var title="">owner</var>.</p>
 
   <p>All characteristics of the DOM nodes that are not described above
   or dependent on characteristics defined above must be left at their
   initial values.</p>
 
   </div>
 
-<!--</div>-->
+</div>
 <!--END webvtt-->
 <!--START w3c-html--><!--TTVTT-->
 
-
   <h5>User interface</h5>
 
   <p>The <dfn title="attr-media-controls"><code>controls</code></dfn>
   attribute is a <span>boolean attribute</span>. If present, it
   indicates that the author has not provided a scripted controller and
   would like the user agent to provide its own set of controls.</p>
 
   <div class="impl">
 
   <p>If the attribute is present, or if <span
@@ -36422,125 +36317,109 @@ interface <dfn>TextTrackCue</dfn> {
   <span>media element</span>, then the user agent should <dfn>expose a
   user interface to the user</dfn>. This user interface should include
   features to begin playback, pause playback, seek to an arbitrary
   position in the content (if the content supports arbitrary seeking),
   change the volume, change the display of closed captions or embedded
   sign-language tracks, select different audio tracks or turn on audio
   descriptions, and show the media content in manners more suitable to
   the user (e.g. full-screen video or in an independent resizable
   window). Other controls may also be made available.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>If the <span>media element</span> has a <span>current media
   controller</span>, then the user agent should expose audio tracks
   from all the <span>slaved media elements</span> (although avoiding
   duplicates if the same <span>media resource</span> is being used
   several times). If a <span>media resource</span>'s audio track
   exposed in this way has no known name, and it is the only audio
   track for a particular <span>media element</span>, the user agent
   should use the element's <code title="attr-title">title</code>
   attribute, if any, as the name (or as part of the name) of that
   track.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <p>Even when the attribute is absent, however, user agents may
   provide controls to affect playback of the media resource
   (e.g. play, pause, seeking, and volume controls), but such features
   should not interfere with the page's normal rendering. For example,
   such features could be exposed in the <span>media element</span>'s
   context menu.</p>
 
   <p>Where possible (specifically, for starting, stopping, pausing,
   and unpausing playback, for seeking, for changing the rate of
   playback, for fast-forwarding or rewinding,
-<!--KEEP-END w3c-html--><!--TT-->
   for listing, enabling, and disabling text tracks,
-<!--KEEP-START w3c-html--><!--TT-->
   and for muting or changing the volume of the audio), user interface
   features exposed by the user agent must be implemented in terms of
   the DOM API described above, so that, e.g., all the same events
   fire.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>When a <span>media element</span> has a <span>current media
   controller</span>, the user agent's user interface for pausing and
   unpausing playback, for seeking, for changing the rate of playback,
   for fast-forwarding or rewinding, and for muting or changing the
   volume of audio of the entire group must be implemented in terms of
   the <code>MediaController</code> API exposed on that <span>current
   media controller</span>.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <p>The "play" function in the user agent's interface must set the
   <code title="">playbackRate</code> attribute to the value of the
   <code title="">defaultPlaybackRate</code> attribute before invoking
   the <code title="">play()</code> method.
-<!--END w3c-html--><!--CONTROLLER-->
   When a <span>media element</span> has a <span>current media
   controller</span>, the attributes and method with those names on
   that <code>MediaController</code> object must be used. Otherwise,
   the attributes and method with those names on the <span>media
   element</span> itself must be used.
-<!--START w3c-html--><!--CONTROLLER-->
   </p>
 
   <p>Features such as fast-forward or rewind must be implemented by
   only changing the <code title="">playbackRate</code> attribute (and
   not the <code title="">defaultPlaybackRate</code> attribute).
-<!--END w3c-html--><!--CONTROLLER-->
   Again, when a <span>media element</span> has a <span>current media
   controller</span>, the attributes with those names on that
   <code>MediaController</code> object must be used; otherwise, the
   attributes with those names on the <span>media element</span> itself
   must be used.
-<!--START w3c-html--><!--CONTROLLER-->
   </p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>When a <span>media element</span> has a <span>current media
   controller</span>, and all the <span>slaved media elements</span> of
   that <code>MediaController</code> are paused, the user agent should
   unpause all the <span>slaved media elements</span> when the user
   invokes a user agent interface control for beginning playback.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>When a <span>media element</span> has a <span>current media
   controller</span>, seeking must be implemented in terms of the <code
   title="dom-MediaController-seek">seek()</code> method on that
   <code>MediaController</code> object. Otherwise, the user agent must
   directly <span title="dom-media-seek">seek</span> to the requested
   position in the <span>media element</span>'s <span>media
   timeline</span>.</p>
 
   <p>When a <span>media element</span> has a <span>current media
   controller</span>, user agents may additionally provide the user
   with controls that directly manipulate an individual <span>media
   element</span> without affecting the <code>MediaController</code>,
   but such features are considered relatively advanced and unlikely to
   be useful to most users.
-<!--START w3c-html--><!--CONTROLLER-->
 
-<!--KEEP-END w3c-html--><!--TT-->
   <p>For the purposes of listing chapters in the <span>media
   resource</span>, only <span title="text track">text tracks</span>
   in the <span>media element</span>'s <span>list of text
   tracks</span> <span title="text track showing">showing</span> or
   <span title="text track showing by default">showing by
   default</span> and whose <span>text track kind</span> is <code
   title="dom-timedtrack-kind-chapters">chapters</code> should be used.
   Each <span title="text track cue">cue</span> in such a <span>text
   track</span> represents a chapter starting at the cue's <span
   title="text track cue start time">start time</span>. The name of
   the chapter is the <span>text track cue text</span>, interpreted
   literally.</p>
-<!--KEEP-START w3c-html--><!--TT-->
 
   <p>The <dfn title="dom-media-controls"><code>controls</code></dfn>
   IDL attribute must <span>reflect</span> the content attribute of the
   same name.</p>
 
   <hr>
 
   </div>
 
   <dl class="domintro">
@@ -36604,37 +36483,33 @@ interface <dfn>TextTrackCue</dfn> {
 
   <p>An element's <dfn>effective media volume</dfn> is determined as
   follows:</p>
 
   <ol>
 
    <li><p>If the element's <code title="dom-media-muted">muted</code>
    attribute is true, the element's <span>effective media
    volume</span> is zero. Abort these steps.</p></li>
 
-<!--END w3c-html--><!--CONTROLLER-->
    <li><p>If the element has a <span>current media controller</span>
    and that <code>MediaController</code> object's <span>media
    controller mute override</span> is true, the element's
    <span>effective media volume</span> is zero. Abort these
    steps.</p></li>
-<!--START w3c-html--><!--CONTROLLER-->
 
    <li><p>Let <var title="">volume</var> be the value of the element's
    <code title="dom-media-volume">volume</code> attribute.</p></li>
 
-<!--END w3c-html--><!--CONTROLLER-->
    <li><p>If the element has a <span>current media controller</span>,
    multiply <var title="">volume</var> by that
    <code>MediaController</code> object's <span>media controller volume
    multiplier</span>.</p></li>
-<!--START w3c-html--><!--CONTROLLER-->
 
    <li><p>The element's <span>effective media volume</span> is <var
    title="">volume</var>, interpreted relative to the range 0.0 to
    1.0, with 0.0 being silent, and 1.0 being the loudest setting,
    values in between increasing in loudness. The range need not be
    linear. The loudest setting may be lower than the system's loudest
    possible setting; for example the user could have set a maximum
    volume.</p></li>
 
   </ol>
@@ -36820,23 +36695,21 @@ interface <dfn>TextTrackCue</dfn> {
      <td><dfn title="event-media-stalled"><code>stalled</code></dfn>
      <td><code>Event</code>
      <td>The user agent is trying to fetch <span>media data</span>, but data is unexpectedly not forthcoming.
      <td><code title="dom-media-networkState">networkState</code> is <code title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>.
 
    <tbody>
     <tr>
      <td><dfn title="event-media-loadedmetadata"><code>loadedmetadata</code></dfn>
      <td><code>Event</code>
      <td>The user agent has just determined the duration and dimensions of the <span>media resource</span>
-<!--KEEP-END w3c-html--><!--TT-->
  and <span>the text tracks are ready</span>.
-<!--KEEP-START w3c-html--><!--TT-->
      <td><code title="dom-media-readyState">readyState</code> is newly equal to <code title="dom-media-HAVE_METADATA">HAVE_METADATA</code> or greater for the first time.
     <tr>
      <td><dfn title="event-media-loadeddata"><code>loadeddata</code></dfn>
      <td><code>Event</code>
      <td>The user agent can render the <span>media data</span> at the <span>current playback position</span> for the first time.
      <td><code title="dom-media-readyState">readyState</code> newly increased to <code title="dom-media-HAVE_CURRENT_DATA">HAVE_CURRENT_DATA</code> or greater for the first time.
     <tr>
      <td><dfn title="event-media-canplay"><code>canplay</code></dfn>
      <td><code>Event</code>
      <td>The user agent can resume playback of the <span>media data</span>, but estimates that if playback were to be started now, the <span>media resource</span> could not be rendered at the current playback rate up to its end without having to stop for further buffering of content.
@@ -36844,32 +36717,28 @@ interface <dfn>TextTrackCue</dfn> {
     <tr>
      <td><dfn title="event-media-canplaythrough"><code>canplaythrough</code></dfn>
      <td><code>Event</code>
      <td>The user agent estimates that if playback were to be started now, the <span>media resource</span> could be rendered at the current playback rate all the way to its end without having to stop for further buffering.
      <td><code title="dom-media-readyState">readyState</code> is newly equal to <code title="dom-media-HAVE_ENOUGH_DATA">HAVE_ENOUGH_DATA</code>.
     <tr>
      <td><dfn title="event-media-playing"><code>playing</code></dfn>
      <td><code>Event</code>
      <td>Playback is ready to start after having been paused or delayed due to lack of <span>media data</span>.
      <td><code title="dom-media-readyState">readyState</code> is newly equal to or greater than <code title="dom-media-HAVE_FUTURE_DATA">HAVE_FUTURE_DATA</code> and <code title="dom-media-paused">paused</code> is false, or <code title="dom-media-paused">paused</code> is newly false and <code title="dom-media-readyState">readyState</code> is equal to or greater than <code title="dom-media-HAVE_FUTURE_DATA">HAVE_FUTURE_DATA</code>. Even if this event fires, the element might still not be <span>potentially playing</span>, e.g. if
-<!--END w3c-html--><!--CONTROLLER-->
      the element is <span>blocked on its media controller</span> (e.g. because the <span>current media controller</span> is paused, or another <span title="slaved media elements">slaved media element</span> is stalled somehow, or because the <span>media resource</span> has no data corresponding to the <span>media controller position</span>), or
-<!--START w3c-html--><!--CONTROLLER-->
      the element is <span>paused for user interaction</span>.
     <tr>
      <td><dfn title="event-media-waiting"><code>waiting</code></dfn>
      <td><code>Event</code>
      <td>Playback has stopped because the next frame is not available, but the user agent expects that frame to become available in due course.
      <td><code title="dom-media-readyState">readyState</code> is equal to or less than <code title="dom-media-HAVE_CURRENT_DATA">HAVE_CURRENT_DATA</code>, and <code title="dom-media-paused">paused</code> is false. Either <code title="dom-media-seeking">seeking</code> is true, or the <span>current playback position</span> is not contained in any of the ranges in <code title="dom-media-buffered">buffered</code>. It is possible for playback to stop for other reasons without <code title="dom-media-paused">paused</code> being false, but those reasons do not fire this event (and when those situations resolve, a separate <code title="event-media-playing">playing</code> event is not fired either): e.g.
-<!--END w3c-html--><!--CONTROLLER-->
      the element is newly <span>blocked on its media controller</span>, or
-<!--START w3c-html--><!--CONTROLLER-->
      <span title="ended playback">playback ended</span>, or playback <span>stopped due to errors</span>, or the element has <span>paused for user interaction</span>.
    <tbody>
     <tr>
      <td><dfn title="event-media-seeking"><code>seeking</code></dfn>
      <td><code>Event</code>
      <td>The <code title="dom-media-seeking">seeking</code> IDL attribute changed to true and the seek operation is taking long enough that the user agent has time to fire the event.
      <td>
     <tr>
      <td><dfn title="event-media-seeked"><code>seeked</code></dfn>
      <td><code>Event</code>
@@ -36907,21 +36776,20 @@ interface <dfn>TextTrackCue</dfn> {
      <td><code>Event</code>
      <td>Either the <code title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code> or the <code title="dom-media-playbackRate">playbackRate</code> attribute has just been updated.
      <td>
     <tr>
      <td><dfn title="event-media-volumechange"><code>volumechange</code></dfn>
      <td><code>Event</code>
      <td>Either the <code title="dom-media-volume">volume</code> attribute or the <code title="dom-media-muted">muted</code> attribute has changed. Fired after the relevant attribute's setter has returned.
      <td>
   </table>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>The following events fire on <code>MediaController</code> objects:</p>
 
   <table>
    <thead>
     <tr>
      <th>Event name
      <th>Interface
      <th>Dispatched when...
 
    <tbody>
@@ -36977,21 +36845,20 @@ interface <dfn>TextTrackCue</dfn> {
      <td>The <code title="dom-MediaController-paused">paused</code> attribute is newly true.
     <tr>
      <td><dfn title="event-MediaController-ratechange"><code>ratechange</code></dfn>
      <td><code>Event</code>
      <td>Either the <code title="dom-MediaController-defaultPlaybackRate">defaultPlaybackRate</code> attribute or the <code title="dom-MediaController-playbackRate">playbackRate</code> attribute has just been updated.
     <tr>
      <td><dfn title="event-MediaController-volumechange"><code>volumechange</code></dfn>
      <td><code>Event</code>
      <td>Either the <code title="dom-MediaController-volume">volume</code> attribute or the <code title="dom-MediaController-muted">muted</code> attribute has just been updated.
   </table>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <div class="impl">
 
   <h5>Security and privacy considerations</h5>
 
   <p>The main security and privacy implications of the
   <code>video</code> and <code>audio</code> elements come from the
   ability to embed media cross-origin. There are two directions that
   threats can flow: from hostile content to a victim page, and from a
   hostile page to victim content.</p>
@@ -37095,28 +36962,26 @@ interface <dfn>TextTrackCue</dfn> {
   data at any time (there is no requirement that a user agent keep all
   the media data obtained for the lifetime of the media element), it
   is again a quality of implementation issue: user agents with
   sufficient resources to keep all the data around are encouraged to
   do so, as this allows for a better user experience. For example, if
   the user is watching a live stream, a user agent could allow the
   user only to view the live video; however, a better user agent would
   buffer everything and allow the user to seek through the earlier
   material, pause it, play it forwards and backwards, etc.</p>
 
-<!--END w3c-html--><!--CONTROLLER-->
   <p>When multiple tracks are synchronised with a
   <code>MediaController</code>, it is possible for scripts to add and
   remove media elements from the <code>MediaController</code>'s list
   of <span>slaved media elements</span>, even while these tracks are
   playing. How smoothly the media plays back in such situations is
   another quality-of-implementation issue.</p>
-<!--START w3c-html--><!--CONTROLLER-->
 
   <hr>
 
   <p>When a <span>media element</span> that is paused is <span
   title="remove an element from a document">removed from a
   document</span> and not reinserted before the next time the
   <span>event loop</span> spins, implementations that are resource
   constrained are encouraged to take that opportunity to release all
   hardware resources (like video planes, networking resources, and
   data buffers) used by the <span>media element</span>. (User agents
@@ -68554,23 +68419,21 @@ interface <dfn>Window</dfn> {
            attribute <span>Function</span> <span title="handler-onabort">onabort</span>;
            attribute <span>Function</span> <span title="handler-window-onafterprint">onafterprint</span>;
            attribute <span>Function</span> <span title="handler-window-onbeforeprint">onbeforeprint</span>;
            attribute <span>Function</span> <span title="handler-window-onbeforeunload">onbeforeunload</span>;
            attribute <span>Function</span> <span title="handler-window-onblur">onblur</span>;
            attribute <span>Function</span> <span title="handler-oncanplay">oncanplay</span>;
            attribute <span>Function</span> <span title="handler-oncanplaythrough">oncanplaythrough</span>;
            attribute <span>Function</span> <span title="handler-onchange">onchange</span>;
            attribute <span>Function</span> <span title="handler-onclick">onclick</span>;
            attribute <span>Function</span> <span title="handler-oncontextmenu">oncontextmenu</span>;
-<!--KEEP-END w3c-html--><!--TT-->
            attribute <span>Function</span> <span title="handler-oncuechange">oncuechange</span>;
-<!--KEEP-START w3c-html--><!--TT-->
            attribute <span>Function</span> <span title="handler-ondblclick">ondblclick</span>;
            attribute <span>Function</span> <span title="handler-ondrag">ondrag</span>;
            attribute <span>Function</span> <span title="handler-ondragend">ondragend</span>;
            attribute <span>Function</span> <span title="handler-ondragenter">ondragenter</span>;
            attribute <span>Function</span> <span title="handler-ondragleave">ondragleave</span>;
            attribute <span>Function</span> <span title="handler-ondragover">ondragover</span>;
            attribute <span>Function</span> <span title="handler-ondragstart">ondragstart</span>;
            attribute <span>Function</span> <span title="handler-ondrop">ondrop</span>;
            attribute <span>Function</span> <span title="handler-ondurationchange">ondurationchange</span>;
            attribute <span>Function</span> <span title="handler-onemptied">onemptied</span>;
@@ -76288,23 +76151,21 @@ interface <dfn>Function</dfn> {
   <table>
    <thead>
     <tr><th><span title="event handlers">Event handler</span> <th><span>Event handler event type</span>
    <tbody>
     <tr><td><dfn title="handler-onabort"><code>onabort</code></dfn> <td> <code title="event-abort">abort</code>
     <tr><td><dfn title="handler-oncanplay"><code>oncanplay</code></dfn> <td> <code title="event-media-canplay">canplay</code>
     <tr><td><dfn title="handler-oncanplaythrough"><code>oncanplaythrough</code></dfn> <td> <code title="event-media-canplaythrough">canplaythrough</code>
     <tr><td><dfn title="handler-onchange"><code>onchange</code></dfn> <td> <code title="event-change">change</code> <!-- widely used -->
     <tr><td><dfn title="handler-onclick"><code>onclick</code></dfn> <td> <code title="event-click">click</code> <!-- widely used -->
     <tr><td><dfn title="handler-oncontextmenu"><code>oncontextmenu</code></dfn> <td> <code title="event-contextmenu">contextmenu</code> <!-- widely used -->
-<!--KEEP-END w3c-html--><!--TT-->
     <tr><td><dfn title="handler-oncuechange"><code>oncuechange</code></dfn> <td> <code title="event-cuechange">cuechange</code>
-<!--KEEP-START w3c-html--><!--TT-->
     <tr><td><dfn title="handler-ondblclick"><code>ondblclick</code></dfn> <td> <code title="event-dblclick">dblclick</code> <!-- widely used -->
     <tr><td><dfn title="handler-ondrag"><code>ondrag</code></dfn> <td> <code title="event-drag">drag</code>
     <tr><td><dfn title="handler-ondragend"><code>ondragend</code></dfn> <td> <code title="event-dragend">dragend</code>
     <tr><td><dfn title="handler-ondragenter"><code>ondragenter</code></dfn> <td> <code title="event-dragenter">dragenter</code>
     <tr><td><dfn title="handler-ondragleave"><code>ondragleave</code></dfn> <td> <code title="event-dragleave">dragleave</code>
     <tr><td><dfn title="handler-ondragover"><code>ondragover</code></dfn> <td> <code title="event-dragover">dragover</code>
     <tr><td><dfn title="handler-ondragstart"><code>ondragstart</code></dfn> <td> <code title="event-dragstart">dragstart</code> <!-- widely used -->
     <tr><td><dfn title="handler-ondrop"><code>ondrop</code></dfn> <td> <code title="event-drop">drop</code>
     <tr><td><dfn title="handler-ondurationchange"><code>ondurationchange</code></dfn> <td> <code title="event-media-durationchange">durationchange</code>
     <tr><td><dfn title="handler-onemptied"><code>onemptied</code></dfn> <td> <code title="event-media-emptied">emptied</code>
@@ -102277,64 +102138,61 @@ fieldset {
   changes, and are expected to disappear when the user does not need
   them.</p>
 
   <p>When a <code>video</code> element represents a poster frame or
   frame of video, the poster frame or frame of video is expected to be
   rendered at the largest size that maintains the aspect ratio of that
   poster frame or frame of video without being taller or wider than
   the <code>video</code> element itself, and is expected to be
   centered in the <code>video</code> element.</p>
 
-<!--KEEP-END w3c-html--><!--TT-->
   <p>Any subtitles or captions are expected to be overlayed directly
   on top of their <code>video</code> element, as defined by the
   relevant rendering rules; for <span>WebVTT</span>, those are the
   <span>WebVTT cue text rendering rules</span> defined below.</p>
 
   <p>When the user agent starts <span title="expose a user interface
   to the user">exposing a user interface</span> for a
   <code>video</code> element, the user agent should run the <span>rules
   for updating the text track rendering</span> of each of the <span
   title="text track">text tracks</span> in the <code>video</code>
   element's <span>list of text tracks</span> that are <span
   title="text track showing">showing</span> or <span title="text
   track showing by default">showing by default</span> (e.g., for <span
   title="text track">text tracks</span> based on
   <span>WebVTT</span>, the <span>rules for updating the display of
   WebVTT text tracks</span>).</p>
-<!--KEEP-START w3c-html--><!--TT-->
 
   <p class="note">Resizing <code>video</code> and <code>canvas</code>
   elements does not interrupt video playback or clear the canvas.</p>
 
   <hr>
 
   <p>The following CSS rules are expected to apply:</p>
 
   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
 
 iframe:not([seamless]) { border: 2px inset; }
 <span id="video-object-fit">video { object-fit: contain; }</span></pre>
 
   </div>
 
 
-<!--KEEP-END w3c-html--><!--TT-->
-<!--<div data-component="other Hixie drafts (editor: Ian Hickson)">-->
   <div class="impl">
 
   <h4>Timed text tracks</h4>
 
   <p class="note">This section is intended to be moved to its own CSS
   module once an editor is found to run with it.</p>
 
 <!--START webvtt-->
+
   <h5><dfn>WebVTT cue text rendering rules</dfn></h5>
 
   <p>The <dfn>rules for updating the display of WebVTT text
   tracks</dfn> render the <span title="text track">text
   tracks</span> of a <span>media element</span> (specifically, a
   <code>video</code> element), or of another playback mechanism, by
   applying the steps below. All the <span title="text track">text
   tracks</span> that use these rules for a given <span>media
   element</span>, or other playback mechanism, are rendered together,
   to avoid overlapping subtitles from multiple tracks.</p>
@@ -103283,23 +103141,22 @@ iframe:not([seamless]) { border: 2px inset; }
   <p>A <span>WebVTT Node Object</span> <var title="">c</var> is
   <dfn>in the future</dfn> if, in a pre-order, depth-first traversal
   of the <span>text track cue</span>'s <span>List of WebVTT Node
   Objects</span>, there exists a <span>WebVTT Timestamp Object</span>
   whose value is greater than the <span>current playback
   position</span> of the <span>media element</span> that is the
   <i>matched element</i>, entirely before the <span>WebVTT Node
   Object</span> <var title="">c</var>.</p>
 
   </div>
-<!--END webvtt-->
-<!--</div>-->
-<!--KEEP-START w3c-html--><!--TT-->
+
+<!--END webvtt--><!--TTVTT-->
 
 
 
 
 
   <div class="impl">
 
   <h4>Images</h4>
 
   <p>When an <code>img</code> element or an <code>input</code> element
@@ -107152,21 +107009,21 @@ interface <span>HTMLDocument</span> {
    <dt>Author:</dt>
    <dd>Ian Hickson &lt;ian@hixie.ch></dd>
    <dt>Change controller:</dt>
    <dd>W3C</dd>
   </dl>
 
   <p>Fragment identifiers have no meaning with
   <code>text/ping</code> resources.</p>
 <!--START w3c-html--><!--PING-->
 
-<!--END w3c-html--><!--TT-->
+<!--END w3c-html--><!--TTVTT-->
 <div data-component="other Hixie drafts (editor: Ian Hickson)">
   <h3><dfn><code>text/vtt</code></dfn></h3>
 
   <p>This registration is for community review and will be submitted
   to the IESG for review, approval, and registration with IANA.</p>
 
   <!--
    To: ietf-types@iana.org
    Subject: Registration of media type text/cues
   -->
@@ -107238,21 +107095,21 @@ interface <span>HTMLDocument</span> {
    <dd>No restrictions apply.</dd>
    <dt>Author:</dt>
    <dd>Ian Hickson &lt;ian@hixie.ch></dd>
    <dt>Change controller:</dt>
    <dd>W3C</dd>
   </dl>
 
   <p>Fragment identifiers have no meaning with
   <code>text/vtt</code> resources.</p>
 </div>
-<!--START w3c-html--><!--TT-->
+<!--START w3c-html--><!--TTVTT-->
 
 <!--END w3c-html--><!--MD--><!--START microdata-->
 
 <!--END complete--><!--END epub--><!--END html--><!--END dev-html-->
   <h4><dfn><code>application/microdata+json</code></dfn></h4>
 <!--START complete--><!--START epub--><!--START html--><!--START dev-html--><!--END microdata-->
   <h3><dfn><code>application/microdata+json</code></dfn></h3>
 <!--START microdata-->
 
   <p>This registration is for community review and will be submitted
@@ -107587,21 +107444,21 @@ interface <span>HTMLDocument</span> {
          <span title="Phrasing content">phrasing</span>;
          <span title="Embedded content">embedded</span>;
          <span title="Interactive content">interactive</span></td>
      <td><span title="Phrasing content">phrasing</span></td>
      <td><code>source</code>*;
          <span>transparent</span>*</td>
      <td><span title="global attributes">globals</span>;
          <code title="attr-media-src">src</code>;
          <code title="attr-media-preload">preload</code>;
          <code title="attr-media-autoplay">autoplay</code>;
-<!--END w3c-html--><!--CONTROLLER-->         <code title="attr-media-mediagroup">mediagroup</code>;<!--START w3c-html--><!--CONTROLLER-->
+         <code title="attr-media-mediagroup">mediagroup</code>;
          <code title="attr-media-loop">loop</code>;
          <code title="attr-media-controls">controls</code></td>
      <td><code>HTMLAudioElement</code></td>
     </tr>
 
     <tr>
      <th><code>b</code></th>
      <td>Keywords</td>
      <td><span title="Flow content">flow</span>;
          <span title="Phrasing content">phrasing</span></td>
@@ -108850,37 +108707,35 @@ interface <span>HTMLDocument</span> {
      <td><code>table</code>;
          <code>thead</code>;
          <code>tbody</code>;
          <code>tfoot</code></td>
      <td><code>th</code>*;
          <code>td</code></td>
      <td><span title="global attributes">globals</span></td>
      <td><code>HTMLTableRowElement</code></td>
     </tr>
 
-<!--KEEP-END w3c-html--><!--TT-->
     <tr>
      <th><code>track</code></th>
      <td>Timed text track</td>
      <td>none</td>
      <td><code>audio</code>;
          <code>video</code></td>
      <td>empty</td>
      <td><span title="global attributes">globals</span>;
          <code title="attr-track-default">default</code>;
          <code title="attr-track-kind">kind</code>;
          <code title="attr-track-label">label</code>;
          <code title="attr-track-src">src</code>;
          <code title="attr-track-srclang">srclang</code></td>
      <td><code>HTMLTrackElement</code></td>
     </tr>
-<!--KEEP-START w3c-html--><!--TT-->
 
     <tr>
      <th><code>u</code></th>
      <td>Keywords</td>
      <td><span title="Flow content">flow</span>;
          <span title="Phrasing content">phrasing</span></td>
      <td><span title="Phrasing content">phrasing</span></td>
      <td><span title="Phrasing content">phrasing</span></td>
      <td><span title="global attributes">globals</span></td>
      <td><code>HTMLElement</code></td>
@@ -108915,21 +108770,21 @@ interface <span>HTMLDocument</span> {
          <span title="Embedded content">embedded</span>;
          <span title="Interactive content">interactive</span></td>
      <td><span title="Phrasing content">phrasing</span></td>
      <td><code>source</code>*;
          <span>transparent</span>*</td>
      <td><span title="global attributes">globals</span>;
          <code title="attr-media-src">src</code>;
          <code title="attr-video-poster">poster</code>;
          <code title="attr-media-preload">preload</code>;
          <code title="attr-media-autoplay">autoplay</code>;
-<!--END w3c-html--><!--CONTROLLER-->         <code title="attr-media-mediagroup">mediagroup</code>;<!--START w3c-html--><!--CONTROLLER-->
+         <code title="attr-media-mediagroup">mediagroup</code>;
          <code title="attr-media-loop">loop</code>;
          <code title="attr-media-controls">controls</code>;
          <code title="attr-dim-width">width</code>;
          <code title="attr-dim-height">height</code></td>
      <td><code>HTMLVideoElement</code></td>
     </tr>
 
     <tr>
      <th><code>wbr</code></th>
      <td>Line breaking opportunity</td>
@@ -109654,40 +109509,36 @@ interface <span>HTMLDocument</span> {
      <th> <code title="">itemtype</code>
      <td> <span title="attr-itemtype">HTML elements</span>
      <td> <span>Item type</span> of a microdata item
      <td> <span title="absolute URL">Valid absolute URL</span>*
 <!--START w3c-html--><!--MD-->
     <tr>
      <th> <code title="">keytype</code>
      <td> <code title="attr-keygen-keytype">keygen</code>
      <td> The type of cryptographic key to generate
      <td> <a href="#attribute-text">Text</a>*
-<!--KEEP-END w3c-html--><!--TT-->
     <tr>
      <th> <code title="">kind</code>
      <td> <code title="attr-track-kind">track</code>
      <td> The type of text track
      <td> "<code title="attr-track-kind-subtitles">subtitles</code>";
           "<code title="attr-track-kind-captions">captions</code>";
           "<code title="attr-track-kind-descriptions">descriptions</code>";
           "<code title="attr-track-kind-chapters">chapters</code>";
           "<code title="attr-track-kind-metadata">metadata</code>"
-<!--KEEP-START w3c-html--><!--TT-->
     <tr>
      <th> <code title="">label</code>
      <td> <code title="attr-command-label">command</code>;
           <code title="attr-menu-label">menu</code>;
           <code title="attr-optgroup-label">optgroup</code>;
           <code title="attr-option-label">option</code>;
-<!--KEEP-END w3c-html--><!--TT-->
           <code title="attr-track-label">track</code>
-<!--KEEP-START w3c-html--><!--TT-->
      <td> User-visible label
      <td> <a href="#attribute-text">Text</a>
     <tr>
      <th> <code title="">lang</code>
      <td> <span title="attr-lang">HTML elements</span>
      <td> <span>Language</span> of the element
      <td> Valid BCP 47 language tag or the empty string
     <tr>
      <th> <code title="">list</code>
      <td> <code title="attr-input-list">input</code>
@@ -109728,28 +109579,26 @@ interface <span>HTMLDocument</span> {
      <td> <span>Valid non-negative integer</span>
     <tr>
      <th> <code title="">media</code>
      <td> <code title="attr-hyperlink-media">a</code>;
           <code title="attr-hyperlink-media">area</code>;
           <code title="attr-link-media">link</code>;
           <code title="attr-source-media">source</code>;
           <code title="attr-style-media">style</code>
      <td> Applicable media
      <td> <span>Valid media query</span>
-<!--END w3c-html--><!--CONTROLLER-->
     <tr>
      <th> <code title="">mediagroup</code>
      <td> <code title="attr-media-mediagroup">audio</code>;
           <code title="attr-media-mediagroup">video</code>
      <td> Groups <span title="media element">media elements</span> together with an implicit <code>MediaController</code>
      <td> <a href="#attribute-text">Text</a>
-<!--START w3c-html--><!--CONTROLLER-->
     <tr>
      <th> <code title="">method</code>
      <td> <code title="attr-fs-method">form</code>
      <td> HTTP method to use for <span>form submission</span>
      <td> "<code title="">GET</code>"; "<code title="">POST</code>"
     <tr>
      <th> <code title="">min</code>
      <td> <code title="attr-input-min">input</code>
      <td> Minimum value
      <td> varies*
@@ -109957,38 +109806,34 @@ interface <span>HTMLDocument</span> {
      <td> <span>Valid non-negative integer</span> greater than zero
     <tr>
      <th> <code title="">src</code>
      <td> <code title="attr-media-src">audio</code>;
           <code title="attr-embed-src">embed</code>;
           <code title="attr-iframe-src">iframe</code>;
           <code title="attr-img-src">img</code>;
           <code title="attr-input-src">input</code>;
           <code title="attr-script-src">script</code>;
           <code title="attr-source-src">source</code>;
-<!--KEEP-END w3c-html--><!--TT-->
           <code title="attr-track-src">track</code>;
-<!--KEEP-START w3c-html--><!--TT-->
           <code title="attr-media-src">video</code>
      <td> Address of the resource
      <td> <span>Valid non-empty URL potentially surrounded by spaces</span>
     <tr>
      <th> <code title="">srcdoc</code>
      <td> <code title="attr-iframe-srcdoc">iframe</code>
      <td> A document to render in the <code>iframe</code>
      <td> The source of <span>an <code>iframe</code> <code title="attr-iframe-srcdoc">srcdoc</code> document</span>*
-<!--KEEP-END w3c-html--><!--TT-->
     <tr>
      <th> <code title="">srclang</code>
      <td> <code title="attr-track-srclang">track</code>
      <td> Language of the text track
      <td> Valid BCP 47 language tag
-<!--KEEP-START w3c-html--><!--TT-->
     <tr>
      <th> <code title="">start</code>
      <td> <code title="attr-ol-start">ol</code>
      <td> <span>Ordinal value</span> of the first item
      <td> <span>Valid integer</span>
     <tr>
      <th> <code title="">step</code>
      <td> <code title="attr-input-step">input</code>
      <td> Granularity to be matched by the form control's value
      <td> <span>Valid floating point number</span> greater than zero, or "<code title="">any</code>"
@@ -110209,27 +110054,26 @@ interface <span>HTMLDocument</span> {
      <th id="ix-handler-onclick"> <code title="">onclick</code>
      <td> <span title="handler-onclick">HTML elements</span>
      <td> <code title="event-click">click</code> event handler
      <td> <span title="event handler content attributes">Event handler content attribute</span>
 
     <tr>
      <th id="ix-handler-oncontextmenu"> <code title="">oncontextmenu</code>
      <td> <span title="handler-oncontextmenu">HTML elements</span>
      <td> <code title="event-contextmenu">contextmenu</code> event handler
      <td> <span title="event handler content attributes">Event handler content attribute</span>
-<!--KEEP-END w3c-html--><!--TT-->
+
     <tr>
      <th id="ix-handler-oncuechange"> <code title="">oncuechange</code>
      <td> <span title="handler-oncuechange">HTML elements</span>
      <td> <code title="event-cuechange">cuechange</code> event handler
      <td> <span title="event handler content attributes">Event handler content attribute</span>
-<!--KEEP-START w3c-html--><!--TT-->
 
     <tr>
      <th id="ix-handler-ondblclick"> <code title="">ondblclick</code>
      <td> <span title="handler-ondblclick">HTML elements</span>
      <td> <code title="event-dblclick">dblclick</code> event handler
      <td> <span title="event handler content attributes">Event handler content attribute</span>
 
     <tr>
      <th id="ix-handler-ondrag"> <code title="">ondrag</code>
      <td> <span title="handler-ondrag">HTML elements</span>
@@ -111025,25 +110869,23 @@ interface <span>HTMLDocument</span> {
      <td> <code>HTMLTimeElement</code> : <code>HTMLElement</code>
 
     <tr>
      <td> <code>title</code>
      <td> <code>HTMLTitleElement</code> : <code>HTMLElement</code>
 
     <tr>
      <td> <code>tr</code>
      <td> <code>HTMLTableRowElement</code> : <code>HTMLElement</code>
 
-<!--KEEP-END w3c-html--><!--TT-->
     <tr>
      <td> <code>track</code>
      <td> <code>HTMLTrackElement</code> : <code>HTMLElement</code>
-<!--KEEP-START w3c-html--><!--TT-->
 
     <tr>
      <td> <code>u</code>
      <td> <code>HTMLElement</code>
 
     <tr>
      <td> <code>ul</code>
      <td> <code>HTMLUListElement</code> : <code>HTMLElement</code>
 
     <tr>
@@ -112700,26 +112542,24 @@ interface <span>HTMLDocument</span> {
   title="attr-contenteditable">contenteditable</code>, and other
   features first widely deployed by the Windows Internet Explorer
   browser.</p>
 
 <!--END w3c-html--><!--MD-->
   <p>Thanks to the participants of the microdata usability study for
   allowing us to use their mistakes as a guide for designing the
   microdata feature.</p>
 <!--START w3c-html--><!--MD-->
 
-<!--END w3c-html--><!--TT-->
   <p>Thanks to the SubRip community, including in particular Zuggy and
   ai4spam, for their work on the SubRip software program whose SRT
   file format was used as the basis for the WebVTT text track file
   format.</p>
-<!--START w3c-html--><!--TT-->
 
   <div class="impl">
 
   <p>Special thanks and $10,000 to David Hyatt who came up with a
   broken implementation of the <a href="#adoptionAgency">adoption
   agency algorithm</a> that the editor had to reverse engineer and fix
   before using it in the parsing section.</p>
 
   </div>
 

|