1. 15 旧式の機能
    1. 15.1 旧式だが適合する機能
      1. 15.1.1 Warnings for obsolete but conforming features
    2. 15.2 非適合機能
    3. 15.3 実装に対する適合性と必要条件
      1. 15.3.1 applet要素
      2. 15.3.2 marquee要素
      3. 15.3.3 フレーム
      4. 15.3.4 その他要素、属性、API

15 旧式の機能

15.1 旧式だが適合する機能

このセクションに記載される機能は、適合性チェッカーで警告するだろう。

著者は、img要素にborder属性を指定すべきでない。属性が存在する場合、その値は文字列"0"でなければならない。CSSが代わりに使用されるべきである。

著者は、script要素にlanguage属性を指定すべきでない。属性が存在する場合、その値は、文字列"JavaScript"にASCII大文字・小文字不区別で一致しなければならず、type属性が省略されなければならない、またはその値が文字列"text/javascript"のASCII大文字・小文字不区別のいずれかで一致しなければならない。この属性は完全に省略される(値"JavaScript"で、効果はない)か、またはtype属性を使用して置換すべきである。

著者は、a要素にname属性を指定すべきでない。属性が存在する場合、その値は空文字列であってはならず、もしあれば、要素自身のID以外で要素のツリーIDのいずれかの値に等しくないものでも、任意の値に等しくなければ要素のツリーa要素の他のname属性と等しくないものでもでなければならない。この属性が存在し、要素がIDを持つ場合、属性値は要素のIDと同じでなければならない。言語の以前のバージョンにおいて、この属性はURL内のフラグメントに対する可能なターゲットを指定するための手段として意図されていた。id属性が代わりに使用されるべきである。

著者は、この仕様の他の場所に相いれない要件にもかかわらず、type属性がNumber状態にあるinput要素上のmaxlengthおよびsize属性を指定すべきでないが、してもよい。One valid reason for using these attributes regardless is to help legacy user agents that do not support input elements with type="number" to still render the text control with a useful width.

15.1.1 Warnings for obsolete but conforming features

To ease the transition from HTML4 Transitional documents to the language defined in this specification, and to discourage certain features that are only allowed in very few circumstances, conformance checkers must warn the user when the following features are used in a document. These are generally old obsolete features that have no effect, and are allowed only to distinguish between likely mistakes (regular conformance errors) and mere vestigial markup or unusual and discouraged practices (these warnings).

The following features must be categorized as described above:

Conformance checkers must distinguish between pages that have no conformance errors and have none of these obsolete features, and pages that have no conformance errors but do have some of these obsolete features.

For example, a validator could report some pages as "Valid HTML" and others as "Valid HTML with warnings".

15.2 非適合機能

次のリストの要素は完全に廃止されており、著者は使用してはならない:

applet

代わりにembedまたはobjectを使用する。

acronym

代わりにabbrを使用する。

bgsound

代わりにaudioを使用する。

dir

代わりにulを使用する。

frame
frameset
noframes

代わりにiframeおよびCSSを使用する、または様々な不変部分が合併された完全なページを生成するために含まれるサーバー側を使用するかのいずれか。

isindex

Use an explicit form and text control combination instead.

listing

代わりにpreまたはcodeを使用する。

keygen

For enterprise device management use cases, use native on-device management capabilities.

For certificate enrollment use cases, use the Web Cryptography API to generate a keypair for the certificate, and then export the certificate and key to allow the user to install them manually. [WEBCRYPTO]

nextid

GUIDを代わりに使用する。

noembed

フォールバックが必要な際にembedの代わりにobjectを使用する。

plaintext

代わりに"text/plain" MIMEタイプを使用する。

rb
rtc

ruby要素内部で直接ルビベースを提供するまたはネストされたruby要素を使用することで十分である。

strike

要素が編集をマークする場合は代わりにdelを使用し、そうでなければ代わりにsを使用する。

xmp

代わりにpreおよびcodeを使用し、"<"および"&"文字をそれぞれ"&lt;"および"&amp;"としてエスケープする。

basefont
big
blink
center
font
marquee
multicol
nobr
spacer
tt

適切な要素またはCSSを代わりに使用する。

tt要素がキーボード入力をマークアップするために使用されるであろう場所において、kbd要素を考慮する。変数に対しては、var要素を考慮する。コンピューターコードに対しては、code要素を考慮する。コンピューター出力に対しては、samp要素を考慮する。

同様に、big要素が見出しを表すために使用される場合、h1要素の使用を考慮する。重要な語句をマークアップするために使用される場合、strong要素を考慮する。参照目的に対してテキストをハイライトするために使用されている場合、mark要素を検討する。

例を含むより多くの提案に対するテキストレベルのセマンティックスの使用状況の概要も参照のこと。


(要素はまだ言語の一部であるが)以下の属性は廃止されており、著者は使用してはならない:

a要素のcharset
link要素のcharset

代わりにリンクされたリソース上の`Content-Type`ヘッダーを使用する。

a要素のcoords
a要素のshape

イメージマップに対してaの代わりにareaを使用する。

a要素のmethods
link要素のmethods

代わりにHTTP OPTIONS機能を使用する。

a要素のname(前のセクションに記載される場合を除く)
embed要素のname
img要素のname
option要素のname

代わりにid属性を使用する。

a要素のrev
link要素のrev

反対の用語をもつ、rel属性を代わりに使用する。(たとえば、rev="made"の代わりに、rel="author"を使用する。)

a要素のurn
link要素のurn

代わりにhref属性を使用して優先される永続的な識別子を指定する。

form要素のaccept

代わりに、input要素で直接accept属性を使用する。

area要素のhreflang
area要素のtype

これらの属性は有用な何かを行うことはなく、歴史的な理由のためにarea要素の属性の対応するIDL属性は存在しない。完全に省略する。

area要素のnohref

href属性を省略することで十分であり、nohref属性は不要である。完全に省略する。

head要素のprofile

不要。完全に省略する。

html要素のversion

不要。完全に省略する。

input要素のismap

不要。完全に省略する。Image Button状態でtype属性をもつすべてのinput要素は、サーバ側イメージマップとして処理される。

input要素のusemap

イメージマップに対してinputの代わりにimgを使用する。

iframe要素のlongdesc
img要素のlongdesc

説明へのリンクのためにa要素を使用する、または(画像の場合)画像から画像の説明へリンクを提供するためにイメージマップを使用する。

img要素のlowsrc

代わりに2つの別々の画像を使用する、(src属性で指定された)プログレッシブJPEG画像を使用する。

link要素のtarget

不要。完全に省略する。

meta要素のscheme

フィールドごとに1つのスキームのみを使用する、または値のスキーム宣言部分を作成する。

object要素のarchive
object要素のclassid
object要素のcode
object要素のcodebase
object要素のcodetype

プラグインを呼び出すために、data属性およびtype属性を使用する。特にこれら名前のパラメーターを設定するために、param要素を使用できる。

object要素のdeclare

object要素のリソースを再利用するたびに完全に繰り返す。

object要素のstandby

少なくとも徐々に、または迅速にロードするようにリンクされたリソースを最適化する。

param要素のtype
param要素のvaluetype

値型を宣言することなく、nameおよびvalue属性を使用する。

script要素のlanguage(前のセクションに記載される場合を除く)

代わりにtype属性を使用する。

script要素のevent
script要素のfor

イベントリスナーを登録するためにDOMイベントのメカニズムを使用する。[DOM]

table要素のdatapagesize

不要。完全に省略する。

table要素のsummary

tableのセクションで指定されたテーブルを記述するための手法のいずれかを代わりに使用する。

td要素のabbr

曖昧さのない簡潔な方法で始まるテキストを使用し、その後に任意のより精巧なテキストを含める。title属性はまた、セルのコンテンツを簡潔にするために、より詳細なテキストを含めるのに有用である。見出しである場合、(abbr属性を持つ)thを使用する。

tdおよびth要素のaxis

代わりに該当するth要素でscope属性を使用する。

td要素のscope

見出しセルに対してth要素を使用する。

aappletbuttondivframeiframeimginputlabellegendmarqueeobjectoptionselectspantable、およびtextarea要素のdatasrc
aappletbuttondivfieldsetframeiframeimginputlabellegendmarqueeobjectparamselectspan、およびtextarea要素のdatafld
buttondivinputlabellegendmarqueeobjectoptionselectspan、およびtable要素のdataformatas

動的にページを読み込むためにスクリプトやXMLHttpRequestのようなメカニズムを使用する。[XHR]

dropzone on all elements

Use script to handle the dragenter and dragover events instead.

body要素のalink
body要素のbgcolor
body要素のbottommargin
body要素のleftmargin
body要素のlink
body要素のmarginheight
body要素のmarginwidth
body要素のrightmargin
body要素のtext
body要素のmargintop
body要素のvlink
br要素のclear
caption要素のalign
col要素のalign
col要素のchar
col要素のcharoff
col要素のvalign
col要素のwidth
div要素のalign
dl要素のcompact
embed要素のalign
embed要素のhspace
embed要素のvspace
hr要素のalign
hr要素のcolor
hr要素のnoshade
hr要素のsize
hr要素のwidth
h1h6要素のalign
iframe要素のalign
iframe要素のallowtransparency
iframe要素のframeborder
framespacing on iframe elements
iframe要素のhspace
iframe要素のmarginheight
iframe要素のmarginwidth
iframe要素のscrolling
iframe要素のvspace
input要素のalign
input要素のborder
input要素のhspace
input要素のvspace
img要素のalign
img要素のborder(前のセクションに記載される場合を除く)
img要素のhspace
img要素のvspace
legend要素のalign
li要素のtype
menu要素のcompact
object要素のalign
object要素のborder
object要素のhspace
object要素のvspace
ol要素のcompact
p要素のalign
pre要素のwidth
table要素のalign
table要素のbgcolor
table要素のborder
table要素のbordercolor
table要素のcellpadding
table要素のcellspacing
table要素のframe
table要素のheight
table要素のrules
table要素のwidth
tbodythead、およびtfoot要素のalign
tbodythead、およびtfoot要素のchar
tbodythead、およびtfoot要素のcharoff
tbodythead、およびtfoot要素のvalign
tdおよびth要素のalign
tdおよびth要素のbgcolor
tdおよびth要素のchar
tdおよびth要素のcharoff
tdおよびth要素のheight
tdおよびth要素のnowrap
tdおよびth要素のvalign
tdおよびth要素のwidth
tr要素のalign
tr要素のbgcolor
tr要素のchar
tr要素のcharoff
tr要素のheight
tr要素のvalign
ul要素のcompact
ul要素のtype
bodytabletheadtbodytfoottrtdth要素のbackground

CSSを代わりに使用する。

15.3 実装に対する適合性と必要条件

15.3.1applet要素

This feature is in the process of being removed from the Web platform. (This is a long process that takes many years.) Using the applet element at this time is highly discouraged. Follow progress toward complete removal in issue #454.

The applet element is a Java-specific variant of the embed element. The applet element is now obsoleted so that all extension frameworks (Java, .NET, Flash, etc) are handled in a consistent manner.

When the element matches any of the following conditions, it represents its contents:

Otherwise, the user agent should instantiate a Java Language runtime plugin, and should pass the names and values of all the attributes on the element, in the order they were added to the element, with the attributes added by the parser being ordered in source order, and then a parameter named "PARAM" whose value is null, and then all the names and values of parameters given by param elements that are children of the applet element, in tree order, to the plugin used. If the plugin supports a scriptable interface, the HTMLAppletElement object representing the element should expose that interface. The applet element represents the plugin.

The applet element is unaffected by the CSS 'display' property. The Java Language runtime is instantiated even if the element is hidden with a 'display:none' CSS style.

The applet element must implement the HTMLAppletElement interface.

// Note: intentionally not [HTMLConstructor]
interface HTMLAppletElement : HTMLElement {
  attribute DOMString align;
  attribute DOMString alt;
  attribute DOMString archive;
  attribute DOMString code;
  attribute USVString codeBase;
  attribute DOMString height;
  attribute unsigned long hspace;
  attribute DOMString name;
  attribute USVString _object; // the underscore is not part of the identifier 
  attribute unsigned long vspace;
  attribute DOMString width;
};

The align, alt, archive, code, height, hspace, name, object, vspace, and width IDL attributes must reflect the respective content attributes of the same name. For the purposes of reflection, the applet element's object content attribute is defined as containing a URL.

The codeBase IDL attribute must reflect the codebase content attribute, which for the purposes of reflection is defined as containing a URL.

15.3.2 The marquee element

The marquee element is a presentational element that animates content. CSS transitions and animations are a more appropriate mechanism. [CSSANIMATIONS] [CSSTRANSITIONS]

The task source for tasks mentioned in this section is the DOM manipulation task source.

The marquee element must implement the HTMLMarqueeElement interface.

[HTMLConstructor]
interface HTMLMarqueeElement : HTMLElement {
  [CEReactions] attribute DOMString behavior;
  [CEReactions] attribute DOMString bgColor;
  [CEReactions] attribute DOMString direction;
  [CEReactions] attribute DOMString height;
  [CEReactions] attribute unsigned long hspace;
  [CEReactions] attribute long loop;
  [CEReactions] attribute unsigned long scrollAmount;
  [CEReactions] attribute unsigned long scrollDelay;
  [CEReactions] attribute boolean trueSpeed;
  [CEReactions] attribute unsigned long vspace;
  [CEReactions] attribute DOMString width;

  attribute EventHandler onbounce;
  attribute EventHandler onfinish;
  attribute EventHandler onstart;

  void start();
  void stop();
};

A marquee element can be turned on or turned off. When it is created, it is turned on.

When the start() method is called, the marquee element must be turned on.

When the stop() method is called, the marquee element must be turned off.

When a marquee element is created, the user agent must queue a task to fire an event named start at the element.


The behavior content attribute on marquee elements is an enumerated attribute with the following keywords (all non-conforming):

キーワード 状態
scroll scroll
slide slide
alternate alternate

The missing value default is the scroll state.


The direction content attribute on marquee elements is an enumerated attribute with the following keywords (all non-conforming):

キーワード 状態
left left
right right
up up
down down

The missing value default is the left state.


The truespeed content attribute on marquee elements is a boolean attribute.


A marquee element has a marquee scroll interval, which is obtained as follows:

  1. If the element has a scrolldelay attribute, and parsing its value using the rules for parsing non-negative integers does not return an error, then let delay be the parsed value. Otherwise, let delay be 85.

  2. If the element does not have a truespeed attribute, and the delay value is less than 60, then let delay be 60 instead.

  3. The marquee scroll interval is delay, interpreted in milliseconds.


A marquee element has a marquee scroll distance, which, if the element has a scrollamount attribute, and parsing its value using the rules for parsing non-negative integers does not return an error, is the parsed value interpreted in CSS pixels, and otherwise is 6 CSS pixels.


A marquee element has a marquee loop count, which, if the element has a loop attribute, and parsing its value using the rules for parsing integers does not return an error or a number less than 1, is the parsed value, and otherwise is −1.

The loop IDL attribute, on getting, must return the element's marquee loop count; and on setting, if the new value is different than the element's marquee loop count and either greater than zero or equal to −1, must set the element's loop content attribute (adding it if necessary) to the valid integer that represents the new value. (Other values are ignored.)

A marquee element also has a marquee current loop index, which is zero when the element is created.

The rendering layer will occasionally increment the marquee current loop index, which must cause the following steps to be run:

  1. If the marquee loop count is −1, then abort these steps.

  2. Increment the marquee current loop index by one.

  3. If the marquee current loop index is now equal to or greater than the element's marquee loop count, turn off the marquee element and queue a task to fire an event named finish at the marquee element.

    Otherwise, if the behavior attribute is in the alternate state, then queue a task to fire an event named bounce at the marquee element.

    Otherwise, queue a task to fire an event named start at the marquee element.


The following are the event handlers (and their corresponding event handler event types) that must be supported, as event handler content attributes and event handler IDL attributes, by marquee elements:

イベントハンドラー イベントハンドラーイベント型
onbounce bounce
onfinish finish
onstart start

The behavior, direction, height, hspace, vspace, and width IDL attributes must reflect the respective content attributes of the same name.

bgColor IDL属性は、bgcolorコンテンツ属性を反映しなければならない。

scrollAmount IDL属性は、scrollamountコンテンツ属性を反映しなければならない。The default value is 6.

scrollDelay IDL属性は、scrolldelayコンテンツ属性を反映しなければならない。The default value is 85.

trueSpeed IDL属性は、truespeedコンテンツ属性を反映しなければならない。

15.3.3 フレーム

The frameset element acts as the body element in documents that use frames.

The frameset element must implement the HTMLFrameSetElement interface.

[HTMLConstructor]
interface HTMLFrameSetElement : HTMLElement {
  [CEReactions] attribute DOMString cols;
  [CEReactions] attribute DOMString rows;
};
HTMLFrameSetElement implements WindowEventHandlers;

The cols and rows IDL attributes of the frameset element must reflect the respective content attributes of the same name.

frameset要素は、Windowオブジェクトのイベントハンドラーの数をイベントハンドラーコンテンツ属性として公開する。また、それらのイベントハンドラーIDL属性を反映する。

The onblur, onerror, onfocus, onload, onresize, and onscroll event handlers of the Window object, exposed on the frameset element, replace the generic event handlers with the same names normally supported by HTML elements.


The frame element defines a nested browsing context similar to the iframe element, but rendered within a frameset element.

A frame element is said to be an active frame element when it is in a document.

When a frame element is created as an active frame element, or becomes an active frame element after not having been one, the user agent must create a new browsing context, set the element's nested browsing context to the newly-created browsing context, and then process the frame attributes for the first time. If the element has a name attribute, the browsing context name must be set to the value of this attribute; otherwise, the browsing context name must be set to the empty string.

When a frame element stops being an active frame element, the user agent must discard the element's nested browsing context, and then set the element's nested browsing context to null.

Whenever a frame element with a non-null nested browsing context has its src attribute set, changed, or removed, the user agent must process the frame attributes.

When the user agent is to process the frame attributes, it must run the first appropriate steps from the following list:

If the element has no src attribute specified, and the user agent is processing the frame's attributes for the first time

Queue a task to fire an event named load at the frame element.

そうでなければ

Run the otherwise steps for iframe or frame elements.

Any navigation required of the user agent in the process the frame attributes algorithm must use the frame element's node document's browsing context as the source browsing context.

Furthermore, if the active document of the element's nested browsing context before such a navigation was not completely loaded at the time of the new navigation, then the navigation must be completed with replacement enabled.

Similarly, if the nested browsing context's session history contained only one Document when the process the frame attributes algorithm was invoked, and that was the about:blank Document created when the nested browsing context was created, then any navigation required of the user agent in that algorithm must be completed with replacement enabled.

When a Document in a frame is marked as completely loaded, the user agent must queue a task to fire an event named load at the frame element.

The task source for the tasks above is the DOM manipulation task source.

When a frame element has a non-null nested browsing context, and its nested browsing context's active document is not ready for post-load tasks, and when anything is delaying the load event of the frame element's browsing context's active document, and when the frame element's browsing context is in the delaying load events mode, the frame must delay the load event of its document.

Whenever the name attribute is set and the frame element's nested browsing context is non-null, the nested browsing context's name must be changed to the new value. If the attribute is removed, the browsing context name must be set to the empty string.

The frame element must implement the HTMLFrameElement interface.

[HTMLConstructor]
interface HTMLFrameElement : HTMLElement {
  [CEReactions] attribute DOMString name;
  [CEReactions] attribute DOMString scrolling;
  [CEReactions] attribute USVString src;
  [CEReactions] attribute DOMString frameBorder;
  [CEReactions] attribute USVString longDesc;
  [CEReactions] attribute boolean noResize;
  readonly attribute Document? contentDocument;
  readonly attribute WindowProxy? contentWindow;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
};

The name, scrolling, and src IDL attributes of the frame element must reflect the respective content attributes of the same name. For the purposes of reflection, the frame element's src content attribute is defined as containing a URL.

The frameBorder IDL attribute of the frame element must reflect the element's frameborder content attribute.

The longDesc IDL attribute of the frame element must reflect the element's longdesc content attribute, which for the purposes of reflection is defined as containing a URL.

The noResize IDL attribute of the frame element must reflect the element's noresize content attribute.

The contentDocument IDL attribute, on getting, must return the frame element's content document.

The contentWindow IDL attribute must return the WindowProxy object of the frame element's nested browsing context, if the element's nested browsing context is non-null, or return null otherwise.

The marginHeight IDL attribute of the frame element must reflect the element's marginheight content attribute.

The marginWidth IDL attribute of the frame element must reflect the element's marginwidth content attribute.

15.3.4 その他要素、属性、API

User agents must treat acronym elements in a manner equivalent to abbr elements in terms of semantics and for purposes of rendering.


partial interface HTMLAnchorElement {
  [CEReactions] attribute DOMString coords;
  [CEReactions] attribute DOMString charset;
  [CEReactions] attribute DOMString name;
  [CEReactions] attribute DOMString rev;
  [CEReactions] attribute DOMString shape;
};

The coords, charset, name, rev, and shape IDL attributes of the a element must reflect the respective content attributes of the same name.


partial interface HTMLAreaElement {
  [CEReactions] attribute boolean noHref;
};

The noHref IDL attribute of the area element must reflect the element's nohref content attribute.


partial interface HTMLBodyElement {
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString text;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString link;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
  [CEReactions] attribute DOMString background;
};

The text IDL attribute of the body element must reflect the element's text content attribute.

The link IDL attribute of the body element must reflect the element's link content attribute.

The aLink IDL attribute of the body element must reflect the element's alink content attribute.

The vLink IDL attribute of the body element must reflect the element's vlink content attribute.

The bgColor IDL attribute of the body element must reflect the element's bgcolor content attribute.

The background IDL attribute of the body element must reflect the element's background content attribute. (The background content is not defined to contain a URL, despite rules regarding its handling in the rendering section above.)


partial interface HTMLBRElement {
  [CEReactions] attribute DOMString clear;
};

The clear IDL attribute of the br element must reflect the content attribute of the same name.


partial interface HTMLTableCaptionElement {
  [CEReactions] attribute DOMString align;
};

The align IDL attribute of the caption element must reflect the content attribute of the same name.


partial interface HTMLTableColElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString ch;
  [CEReactions] attribute DOMString chOff;
  [CEReactions] attribute DOMString vAlign;
  [CEReactions] attribute DOMString width;
};

The align and width IDL attributes of the col element must reflect the respective content attributes of the same name.

The ch IDL attribute of the col element must reflect the element's char content attribute.

The chOff IDL attribute of the col element must reflect the element's charoff content attribute.

The vAlign IDL attribute of the col element must reflect the element's valign content attribute.


User agents must treat dir elements in a manner equivalent to ul elements in terms of semantics and for purposes of rendering.

The dir element must implement the HTMLDirectoryElement interface.

[HTMLConstructor]
interface HTMLDirectoryElement : HTMLElement {
  [CEReactions] attribute boolean compact;
};

The compact IDL attribute of the dir element must reflect the content attribute of the same name.


partial interface HTMLDivElement {
  [CEReactions] attribute DOMString align;
};

The align IDL attribute of the div element must reflect the content attribute of the same name.


partial interface HTMLDListElement {
  [CEReactions] attribute boolean compact;
};

The compact IDL attribute of the dl element must reflect the content attribute of the same name.


partial interface HTMLEmbedElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString name;
};

The name and align IDL attributes of the embed element must reflect the respective content attributes of the same name.


The font element must implement the HTMLFontElement interface.

[HTMLConstructor]
interface HTMLFontElement : HTMLElement {
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString color;
  [CEReactions] attribute DOMString face;
  [CEReactions] attribute DOMString size; 
};

The color, face, and size IDL attributes of the font element must reflect the respective content attributes of the same name.


partial interface HTMLHeadingElement {
  [CEReactions] attribute DOMString align;
};

The align IDL attribute of the h1h6 elements must reflect the content attribute of the same name.


The profile IDL attribute on head elements (with the HTMLHeadElement interface) is intentionally omitted. Unless so required by another applicable specification, implementations would therefore not support this attribute. (It is mentioned here as it was defined in a previous version of the DOM specifications.)


partial interface HTMLHRElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString color;
  [CEReactions] attribute boolean noShade;
  [CEReactions] attribute DOMString size;
  [CEReactions] attribute DOMString width;
};

The align, color, size, and width IDL attributes of the hr element must reflect the respective content attributes of the same name.

The noShade IDL attribute of the hr element must reflect the element's noshade content attribute.


partial interface HTMLHtmlElement {
  [CEReactions] attribute DOMString version;
};

The version IDL attribute of the html element must reflect the content attribute of the same name.


partial interface HTMLIFrameElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString scrolling;
  [CEReactions] attribute DOMString frameBorder;
  [CEReactions] attribute USVString longDesc;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
};

The align and scrolling IDL attributes of the iframe element must reflect the respective content attributes of the same name.

The frameBorder IDL attribute of the iframe element must reflect the element's frameborder content attribute.

The longDesc IDL attribute of the iframe element must reflect the element's longdesc content attribute, which for the purposes of reflection is defined as containing a URL.

The marginHeight IDL attribute of the iframe element must reflect the element's marginheight content attribute.

The marginWidth IDL attribute of the iframe element must reflect the element's marginwidth content attribute.


partial interface HTMLImageElement {
  [CEReactions] attribute DOMString name;
  [CEReactions] attribute USVString lowsrc;
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute unsigned long hspace;
  [CEReactions] attribute unsigned long vspace;
  [CEReactions] attribute USVString longDesc;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
};

The name, align, border, hspace, and vspace IDL attributes of the img element must reflect the respective content attributes of the same name.

The longDesc IDL attribute of the img element must reflect the element's longdesc content attribute, which for the purposes of reflection is defined as containing a URL.

The lowsrc IDL attribute of the img element must reflect the element's lowsrc content attribute, which for the purposes of reflection is defined as containing a URL.


partial interface HTMLInputElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString useMap;
};

The align IDL attribute of the input element must reflect the content attribute of the same name.

The useMap IDL attribute of the input element must reflect the element's usemap content attribute.


partial interface HTMLLegendElement {
  [CEReactions] attribute DOMString align;
};

The align IDL attribute of the legend element must reflect the content attribute of the same name.


partial interface HTMLLIElement {
  [CEReactions] attribute DOMString type;
};

The type IDL attribute of the li element must reflect the content attribute of the same name.


partial interface HTMLLinkElement {
  [CEReactions] attribute DOMString charset;
  [CEReactions] attribute DOMString rev;
  [CEReactions] attribute DOMString target;
};

The charset, rev, and target IDL attributes of the link element must reflect the respective content attributes of the same name.


User agents must treat listing elements in a manner equivalent to pre elements in terms of semantics and for purposes of rendering.


partial interface HTMLMenuElement {
  [CEReactions] attribute boolean compact;
};

The compact IDL attribute of the menu element must reflect the content attribute of the same name.


partial interface HTMLMetaElement {
  [CEReactions] attribute DOMString scheme;
};

User agents may treat the scheme content attribute on the meta element as an extension of the element's name content attribute when processing a meta element with a name attribute whose value is one that the user agent recognizes as supporting the scheme attribute.

User agents are encouraged to ignore the scheme attribute and instead process the value given to the metadata name as if it had been specified for each expected value of the scheme attribute.

For example, if the user agent acts on meta elements with name attributes having the value "eGMS.subject.keyword", and knows that the scheme attribute is used with this metadata name, then it could take the scheme attribute into account, acting as if it was an extension of the name attribute. Thus the following two meta elements could be treated as two elements giving values for two different metadata names, one consisting of a combination of "eGMS.subject.keyword" and "LGCL", and the other consisting of a combination of "eGMS.subject.keyword" and "ORLY":

<!-- this markup is invalid -->
<meta name="eGMS.subject.keyword" scheme="LGCL" content="Abandoned vehicles">
<meta name="eGMS.subject.keyword" scheme="ORLY" content="Mah car: kthxbye">

The suggested processing of this markup, however, would be equivalent to the following:

<meta name="eGMS.subject.keyword" content="Abandoned vehicles">
<meta name="eGMS.subject.keyword" content="Mah car: kthxbye">

The scheme IDL attribute of the meta element must reflect the content attribute of the same name.


partial interface HTMLObjectElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString archive;
  [CEReactions] attribute DOMString code;
  [CEReactions] attribute boolean declare;
  [CEReactions] attribute unsigned long hspace;
  [CEReactions] attribute DOMString standby;
  [CEReactions] attribute unsigned long vspace;
  [CEReactions] attribute DOMString codeBase;
  [CEReactions] attribute DOMString codeType;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
};

The align, archive, border, code, declare, hspace, standby, and vspace IDL attributes of the object element must reflect the respective content attributes of the same name.

The codeBase IDL attribute of the object element must reflect the element's codebase content attribute, which for the purposes of reflection is defined as containing a URL.

The codeType IDL attribute of the object element must reflect the element's codetype content attribute.


partial interface HTMLOListElement {
  [CEReactions] attribute boolean compact;
};

The compact IDL attribute of the ol element must reflect the content attribute of the same name.


partial interface HTMLParagraphElement {
  [CEReactions] attribute DOMString align;
};

The align IDL attribute of the p element must reflect the content attribute of the same name.


partial interface HTMLParamElement {
  [CEReactions] attribute DOMString type;
  [CEReactions] attribute DOMString valueType;
};

The type IDL attribute of the param element must reflect the content attribute of the same name.

The valueType IDL attribute of the param element must reflect the element's valuetype content attribute.


User agents must treat plaintext elements in a manner equivalent to pre elements in terms of semantics and for purposes of rendering. (The parser has special behavior for this element, though.)


partial interface HTMLPreElement {
  [CEReactions] attribute long width;
};

The width IDL attribute of the pre element must reflect the content attribute of the same name.


partial interface HTMLScriptElement {
  [CEReactions] attribute DOMString event;
  [CEReactions] attribute DOMString htmlFor;
};

The event IDL attribute of the script element must reflect the element's event content attribute.

The htmlFor IDL attribute of the script element must reflect the element's for content attribute.


partial interface HTMLTableElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString border;
  [CEReactions] attribute DOMString frame;
  [CEReactions] attribute DOMString rules;
  [CEReactions] attribute DOMString summary;
  [CEReactions] attribute DOMString width;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
};

The align, border, frame, summary, rules, and width, IDL attributes of the table element must reflect the respective content attributes of the same name.

The bgColor IDL attribute of the table element must reflect the element's bgcolor content attribute.

The cellPadding IDL attribute of the table element must reflect the element's cellpadding content attribute.

The cellSpacing IDL attribute of the table element must reflect the element's cellspacing content attribute.


partial interface HTMLTableSectionElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString ch;
  [CEReactions] attribute DOMString chOff;
  [CEReactions] attribute DOMString vAlign;
};

The align IDL attribute of the tbody, thead, and tfoot elements must reflect the content attribute of the same name.

The ch IDL attribute of the tbody, thead, and tfoot elements must reflect the elements' char content attributes.

The chOff IDL attribute of the tbody, thead, and tfoot elements must reflect the elements' charoff content attributes.

The vAlign IDL attribute of the tbody, thead, and tfoot element must reflect the elements' valign content attributes.


partial interface HTMLTableCellElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString axis;
  [CEReactions] attribute DOMString height;
  [CEReactions] attribute DOMString width;

  [CEReactions] attribute DOMString ch;
  [CEReactions] attribute DOMString chOff;
  [CEReactions] attribute boolean noWrap;
  [CEReactions] attribute DOMString vAlign;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
};

The align, axis, height, and width IDL attributes of the td and th elements must reflect the respective content attributes of the same name.

The ch IDL attribute of the td and th elements must reflect the elements' char content attributes.

The chOff IDL attribute of the td and th elements must reflect the elements' charoff content attributes.

The noWrap IDL attribute of the td and th elements must reflect the elements' nowrap content attributes.

The vAlign IDL attribute of the td and th elements must reflect the elements' valign content attributes.

The bgColor IDL attribute of the td and th elements must reflect the elements' bgcolor content attributes.


partial interface HTMLTableRowElement {
  [CEReactions] attribute DOMString align;
  [CEReactions] attribute DOMString ch;
  [CEReactions] attribute DOMString chOff;
  [CEReactions] attribute DOMString vAlign;

  [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
};

The align IDL attribute of the tr element must reflect the content attribute of the same name.

The ch IDL attribute of the tr element must reflect the element's char content attribute.

The chOff IDL attribute of the tr element must reflect the element's charoff content attribute.

The vAlign IDL attribute of the tr element must reflect the element's valign content attribute.

The bgColor IDL attribute of the tr element must reflect the element's bgcolor content attribute.


partial interface HTMLUListElement {
  [CEReactions] attribute boolean compact;
  [CEReactions] attribute DOMString type;
};

The compact and type IDL attributes of the ul element must reflect the respective content attributes of the same name.


User agents must treat xmp elements in a manner equivalent to pre elements in terms of semantics and for purposes of rendering. (The parser has special behavior for this element though.)


partial interface Document {
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor;
  [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;

  [SameObject] readonly attribute HTMLCollection anchors;
  [SameObject] readonly attribute HTMLCollection applets;

  void clear();
  void captureEvents();
  void releaseEvents();

  [SameObject] readonly attribute HTMLAllCollection all;
};

The attributes of the Document object listed in the first column of the following table must reflect the content attribute on the body element with the name given in the corresponding cell in the second column on the same row, if the body element is a body element (as opposed to a frameset element). When there is no body element or if it is a frameset element, the attributes must instead return the empty string on getting and do nothing on setting.

IDL attribute Content attribute
fgColor text
linkColor link
vlinkColor vlink
alinkColor alink
bgColor bgcolor

The anchors attribute must return an HTMLCollection rooted at the Document node, whose filter matches only a elements with name attributes.

The applets attribute must return an HTMLCollection rooted at the Document node, whose filter matches only applet elements.

The clear(), captureEvents(), and releaseEvents() methods must do nothing.


The all attribute must return an HTMLAllCollection rooted at the Document node, whose filter matches all elements.

The object returned for all has several unusual behaviors:

These requirements are a willful violation of the JavaScript specification current at the time of writing. The JavaScript specification requires that ToBoolean return true for all objects, and does not have provisions for objects acting as if they were undefined for the purposes of certain operators. This violation is motivated by a desire for compatibility with two classes of legacy content: one that uses the presence of document.all as a way to detect legacy user agents, and one that only supports those legacy user agents and uses the document.all object without testing for its presence first. [JAVASCRIPT]


partial interface Window {
  void captureEvents();
  void releaseEvents();

  [Replaceable, SameObject] readonly attribute External external;
};

The captureEvents() and releaseEvents() methods must do nothing.

The external attribute of the Window interface must return an instance of the External interface:

[NoInterfaceObject]
interface External {
  void AddSearchProvider();
  void IsSearchProviderInstalled();
};

The AddSearchProvider() and IsSearchProviderInstalled() methods must do nothing.