HTML5: Edition for Web Authors (original) (raw)
Abstract
This document is a strict subset of thefull HTML5 specification that omits user-agent (UA) implementation details. It is targeted toward Web authors and others who are not UA implementors and who want a view of the HTML specification that focuses more precisely on details relevant to using the HTML language to create Web documents and Web applications. Because this document does not provide implementation conformance criteria, UA implementors should not rely on it, but should instead refer to thefull HTML5 specification.
This document is an automated redaction of thefull HTML5 specification. As such, the two documents are supposed to agree on normative matters concerning Web authors. However, if the documents disagree, this is a bug in the redaction process and the unredacted full HTML specification takes precedence. Readers are encouraged to report such discrepancies as bugs in the bug tracking system of the HTML Working Group.
Status of This document
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the most recently formally published revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
If you wish to make comments regarding this document in a manner that is tracked by the W3C, please submit them via using our public bug database. If you do not have an account then you can enter feedback using this form:
If you cannot do this then you can also e-mail feedback to public-html-comments@w3.org (subscribe,archives), and arrangements will be made to transpose the comments to our public bug database. Alternatively, you can e-mail feedback to whatwg@whatwg.org (subscribe,archives). The editor guarantees that all substantive feedback sent to this list will receive a reply. However, such feedback is not considered formal feedback for the W3C process. All feedback is welcome.
The working groups maintains a list of all bug reports that the editor has not yet tried to address and a list of issues for which the chairs have not yet declared a decision. The editor also maintains a list of all e-mails that he has not yet tried to address. These bugs, issues, and e-mails apply to multiple HTML-related specifications, not just this one.
Implementors should be aware that this specification is not stable. Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways. Vendors interested in implementing this specification before it eventually reaches the Candidate Recommendation stage should join the aforementioned mailing lists and take part in the discussions.
The publication of this document by the W3C as a W3C Working Draft does not imply that all of the participants in the W3C HTML working group endorse the contents of the specification. Indeed, for any section of the specification, one can usually find many members of the working group or of the W3C as a whole who object strongly to the current text, the existence of the section at all, or the idea that the working group should even spend time discussing the concept of that section.
The latest stable version of the editor's draft of this specification is always available on the W3C CVS server and in the WHATWG Subversion repository. The latest editor's working copy (which may contain unfinished text in the process of being prepared) contains the latest draft text of this specification (amongst others). For more details, please see the WHATWG FAQ.
There are various ways to follow the change history for the HTML specifications:
E-mail notifications of changes
HTML-Diffs mailing list (diff-marked HTML versions for each change): http://lists.w3.org/Archives/Public/public-html-diffs/latest
Commit-Watchers mailing list (complete source diffs): http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org
Browsable version-control record of all changes:
CVSWeb interface with side-by-side diffs: http://dev.w3.org/cvsweb/html5/spec/
Annotated summary with unified diffs: http://html5.org/tools/web-apps-tracker
Raw Subversion interface: svn checkout http://svn.whatwg.org/webapps/
The W3C HTML Working Group is the W3C working group responsible for this specification's progress along the W3C Recommendation track. This specification is the 29 March 2012 Working Draft.
Work on this specification is also done at the WHATWG. The W3C HTML working group actively pursues convergence with the WHATWG, as required by the W3C HTML working group charter.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
Table of Contents
- 1 Introduction
- 2 Common infrastructure
- 2.1 Terminology
- 2.2 Conformance requirements
- 2.3 Case-sensitivity and string comparison
- 2.4 Common microsyntaxes
- 2.4.1 Common parser idioms
- 2.4.2 Boolean attributes
- 2.4.3 Keywords and enumerated attributes
- 2.4.4 Numbers
1. 2.4.4.1 Signed integers
2. 2.4.4.2 Non-negative integers
3. 2.4.4.3 Floating-point numbers
4. 2.4.4.4 Lists of integers - 2.4.5 Dates and times
1. 2.4.5.1 Months
2. 2.4.5.2 Dates
3. 2.4.5.3 Yearless dates
4. 2.4.5.4 Times
5. 2.4.5.5 Local dates and times
6. 2.4.5.6 Time zones
7. 2.4.5.7 Global dates and times
8. 2.4.5.8 Weeks
9. 2.4.5.9 Durations
10. 2.4.5.10 Vaguer moments in time - 2.4.6 Colors
- 2.4.7 Space-separated tokens
- 2.4.8 Comma-separated tokens
- 2.4.9 References
- 2.4.10 Media queries
- 2.5 URLs
- 2.6 Common DOM interfaces
- 2.7 Namespaces
- 3 Semantics, structure, and APIs of HTML documents
- 3.1 Documents
- 3.2 Elements
- 3.2.1 Semantics
- 3.2.2 Elements in the DOM
- 3.2.3 Global attributes
1. 3.2.3.1 The id attribute
2. 3.2.3.2 The title attribute
3. 3.2.3.3 The lang and xml:lang attributes
4. 3.2.3.4 The translate attribute
5. 3.2.3.5 The xml:base attribute (XML only)
6. 3.2.3.6 The dir attribute
7. 3.2.3.7 The class attribute
8. 3.2.3.8 The style attribute
9. 3.2.3.9 Embedding custom non-visible data with the data-* attributes - 3.2.4 Element definitions
1. 3.2.4.1 Attributes - 3.2.5 Content models
1. 3.2.5.1 Kinds of content
1. 3.2.5.1.1 Metadata content
2. 3.2.5.1.2 Flow content
3. 3.2.5.1.3 Sectioning content
4. 3.2.5.1.4 Heading content
5. 3.2.5.1.5 Phrasing content
6. 3.2.5.1.6 Embedded content
7. 3.2.5.1.7 Interactive content
8. 3.2.5.1.8 Palpable content
2. 3.2.5.2 Transparent content models
3. 3.2.5.3 Paragraphs - 3.2.6 Requirements relating to bidirectional-algorithm formatting characters
- 3.2.7 WAI-ARIA
- 3.3 Dynamic markup insertion
- 4 The elements of HTML
- 4.1 The root element
- 4.2 Document metadata
- 4.2.1 The head element
- 4.2.2 The title element
- 4.2.3 The base element
- 4.2.4 The link element
- 4.2.5 The meta element
1. 4.2.5.1 Standard metadata names
2. 4.2.5.2 Other metadata names
3. 4.2.5.3 Pragma directives
4. 4.2.5.4 Other pragma directives
5. 4.2.5.5 Specifying the document's character encoding - 4.2.6 The style element
- 4.2.7 Styling
- 4.3 Scripting
- 4.4 Sections
- 4.4.1 The body element
- 4.4.2 The section element
- 4.4.3 The nav element
- 4.4.4 The article element
- 4.4.5 The aside element
- 4.4.6 The h1, h2, h3, h4, h5, and h6 elements
- 4.4.7 The hgroup element
- 4.4.8 The header element
- 4.4.9 The footer element
- 4.4.10 The address element
- 4.4.11 Headings and sections
1. 4.4.11.1 Creating an outline
- 4.5 Grouping content
- 4.6 Text-level semantics
- 4.6.1 The a element
- 4.6.2 The em element
- 4.6.3 The strong element
- 4.6.4 The small element
- 4.6.5 The s element
- 4.6.6 The cite element
- 4.6.7 The q element
- 4.6.8 The dfn element
- 4.6.9 The abbr element
- 4.6.10 The time element
- 4.6.11 The code element
- 4.6.12 The var element
- 4.6.13 The samp element
- 4.6.14 The kbd element
- 4.6.15 The sub and sup elements
- 4.6.16 The i element
- 4.6.17 The b element
- 4.6.18 The u element
- 4.6.19 The mark element
- 4.6.20 The ruby element
- 4.6.21 The rt element
- 4.6.22 The rp element
- 4.6.23 The bdi element
- 4.6.24 The bdo element
- 4.6.25 The span element
- 4.6.26 The br element
- 4.6.27 The wbr element
- 4.6.28 Usage summary
- 4.7 Edits
- 4.8 Embedded content
- 4.8.1 The img element
1. 4.8.1.1 Requirements for providing text to act as an alternative for images
1. 4.8.1.1.1 General guidelines
2. 4.8.1.1.2 A link or button containing nothing but the image
3. 4.8.1.1.3 A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations
4. 4.8.1.1.4 A short phrase or label with an alternative graphical representation: icons, logos
5. 4.8.1.1.5 Text that has been rendered to a graphic for typographical effect
6. 4.8.1.1.6 A graphical representation of some of the surrounding text
7. 4.8.1.1.7 A purely decorative image that doesn't add any information
8. 4.8.1.1.8 A group of images that form a single larger picture with no links
9. 4.8.1.1.9 A group of images that form a single larger picture with links
10. 4.8.1.1.10 A key part of the content
11. 4.8.1.1.11 An image not intended for the user - 4.8.2 The iframe element
- 4.8.3 The embed element
- 4.8.4 The object element
- 4.8.5 The param element
- 4.8.6 The video element
- 4.8.7 The audio element
- 4.8.8 The source element
- 4.8.9 The track element
- 4.8.10 Media elements
1. 4.8.10.1 Error codes
2. 4.8.10.2 Location of the media resource
3. 4.8.10.3 MIME types
4. 4.8.10.4 Network states
5. 4.8.10.5 Loading the media resource
6. 4.8.10.6 Offsets into the media resource
7. 4.8.10.7 Ready states
8. 4.8.10.8 Playing the media resource
9. 4.8.10.9 Seeking
10. 4.8.10.10 Media resources with multiple media tracks
1. 4.8.10.10.1 AudioTrackList and VideoTrackList objects
2. 4.8.10.10.2 Selecting specific audio and video tracks declaratively
11. 4.8.10.11 Synchronising multiple media elements
1. 4.8.10.11.1 Introduction
2. 4.8.10.11.2 Media controllers
3. 4.8.10.11.3 Assigning a media controller declaratively
12. 4.8.10.12 Timed text tracks
1. 4.8.10.12.1 Text track model
2. 4.8.10.12.2 Sourcing in-band text tracks
3. 4.8.10.12.3 Text track API
4. 4.8.10.12.4 Text tracks describing chapters
13. 4.8.10.13 User interface
14. 4.8.10.14 Time ranges
15. 4.8.10.15 Event definitions
16. 4.8.10.16 Event summary
17. 4.8.10.17 Best practices for authors using media elements - 4.8.11 The canvas element
- 4.8.12 The map element
- 4.8.13 The area element
- 4.8.14 Image maps
- 4.8.15 MathML
- 4.8.16 SVG
- 4.8.17 Dimension attributes
- 4.8.1 The img element
- 4.9 Tabular data
- 4.9.1 The table element
1. 4.9.1.1 Techniques for describing tables
2. 4.9.1.2 Techniques for table layout - 4.9.2 The caption element
- 4.9.3 The colgroup element
- 4.9.4 The col element
- 4.9.5 The tbody element
- 4.9.6 The thead element
- 4.9.7 The tfoot element
- 4.9.8 The tr element
- 4.9.9 The td element
- 4.9.10 The th element
- 4.9.11 Attributes common to td and th elements
- 4.9.12 Examples
- 4.9.1 The table element
- 4.10 Forms
- 4.10.1 Introduction
1. 4.10.1.1 Writing a form's user interface
2. 4.10.1.2 Implementing the server-side processing for a form
3. 4.10.1.3 Configuring a form to communicate with a server
4. 4.10.1.4 Client-side form validation
5. 4.10.1.5 Date, time, and number formats - 4.10.2 Categories
- 4.10.3 The form element
- 4.10.4 The fieldset element
- 4.10.5 The legend element
- 4.10.6 The label element
- 4.10.7 The input element
1. 4.10.7.1 States of the type attribute
1. 4.10.7.1.1 Hidden state (type=hidden)
2. 4.10.7.1.2 Text (type=text) state and Search state (type=search)
3. 4.10.7.1.3 Telephone state (type=tel)
4. 4.10.7.1.4 URL state (type=url)
5. 4.10.7.1.5 E-mail state (type=email)
6. 4.10.7.1.6 Password state (type=password)
7. 4.10.7.1.7 Date and Time state (type=datetime)
8. 4.10.7.1.8 Date state (type=date)
9. 4.10.7.1.9 Month state (type=month)
10. 4.10.7.1.10 Week state (type=week)
11. 4.10.7.1.11 Time state (type=time)
12. 4.10.7.1.12 Local Date and Time state (type=datetime-local)
13. 4.10.7.1.13 Number state (type=number)
14. 4.10.7.1.14 Range state (type=range)
15. 4.10.7.1.15 Color state (type=color)
16. 4.10.7.1.16 Checkbox state (type=checkbox)
17. 4.10.7.1.17 Radio Button state (type=radio)
18. 4.10.7.1.18 File Upload state (type=file)
19. 4.10.7.1.19 Submit Button state (type=submit)
20. 4.10.7.1.20 Image Button state (type=image)
21. 4.10.7.1.21 Reset Button state (type=reset)
22. 4.10.7.1.22 Button state (type=button)
2. 4.10.7.2 Common input element attributes
1. 4.10.7.2.1 The autocomplete attribute
2. 4.10.7.2.2 The dirname attribute
3. 4.10.7.2.3 The list attribute
4. 4.10.7.2.4 The readonly attribute
5. 4.10.7.2.5 The size attribute
6. 4.10.7.2.6 The required attribute
7. 4.10.7.2.7 The multiple attribute
8. 4.10.7.2.8 The maxlength attribute
9. 4.10.7.2.9 The pattern attribute
10. 4.10.7.2.10 The min and max attributes
11. 4.10.7.2.11 The step attribute
12. 4.10.7.2.12 The placeholder attribute
3. 4.10.7.3 Common input element APIs - 4.10.8 The button element
- 4.10.9 The select element
- 4.10.10 The datalist element
- 4.10.11 The optgroup element
- 4.10.12 The option element
- 4.10.13 The textarea element
- 4.10.14 The keygen element
- 4.10.15 The output element
- 4.10.16 The progress element
- 4.10.17 The meter element
- 4.10.18 Association of controls and forms
- 4.10.19 Attributes common to form controls
1. 4.10.19.1 Naming form controls
2. 4.10.19.2 Enabling and disabling form controls
3. 4.10.19.3 Autofocusing a form control
4. 4.10.19.4 Limiting user input length
5. 4.10.19.5 Form submission
6. 4.10.19.6 Submitting element directionality - 4.10.20 APIs for the text field selections
- 4.10.21 Constraints
1. 4.10.21.1 Definitions
2. 4.10.21.2 The constraint validation API
3. 4.10.21.3 Security - 4.10.22 Form submission
1. 4.10.22.1 URL-encoded form data
2. 4.10.22.2 Plain text form data
- 4.10.1 Introduction
- 4.11 Interactive elements
- 4.12 Links
- 4.12.1 Introduction
- 4.12.2 Links created by a and area elements
- 4.12.3 Link types
1. 4.12.3.1 Link type "alternate"
2. 4.12.3.3 Link type "bookmark"
3. 4.12.3.4 Link type "help"
4. 4.12.3.5 Link type "icon"
5. 4.12.3.6 Link type "license"
6. 4.12.3.7 Link type "nofollow"
7. 4.12.3.8 Link type "noreferrer"
8. 4.12.3.9 Link type "prefetch"
9. 4.12.3.10 Link type "search"
10. 4.12.3.11 Link type "stylesheet"
11. 4.12.3.12 Link type "tag"
12. 4.12.3.13 Sequential link types
1. 4.12.3.13.1 Link type "next"
2. 4.12.3.13.2 Link type "prev"
13. 4.12.3.14 Other link types
- 4.13 Common idioms without dedicated elements
- 5 Loading Web pages
- 6 Web application APIs
- 7 User interaction
- 8 The HTML syntax
- 8.1 Writing HTML documents
- 8.1.1 The DOCTYPE
- 8.1.2 Elements
1. 8.1.2.1 Start tags
2. 8.1.2.2 End tags
3. 8.1.2.3 Attributes
4. 8.1.2.4 Optional tags
5. 8.1.2.5 Restrictions on content models
6. 8.1.2.6 Restrictions on the contents of raw text and RCDATA elements - 8.1.3 Text
1. 8.1.3.1 Newlines - 8.1.4 Character references
- 8.1.5 CDATA sections
- 8.1.6 Comments
- 8.2 Named character references
- 8.1 Writing HTML documents
- 9 The XHTML syntax
- 10 Obsolete features
- 10.1 Obsolete but conforming features
- 10.2 Non-conforming features
- 11 IANA considerations
- 11.1 text/html
- 11.2 multipart/x-mixed-replace
- 11.3 application/xhtml+xml
- 11.4 application/x-www-form-urlencoded
- 11.5 text/cache-manifest
- 11.6 web+ scheme prefix
- Index
- Elements
- Element content categories
- Attributes
- Interfaces
- Events
- Index of terms
- References
- Acknowledgements