Day 3 of 100DaysOfSpec, 2.2 Conformance Requirements
I am reading and taking notes on the HTML specifications for 100 days as part of #The100DayProject. Read the initial intent/backstory. I am a Microsoft employee but all opinions, comments, etc on this site are my own. I do not speak on behalf of my employer, and thus no comments should be taken as representative of Microsoft's official opinion of the spec. Subsections not listed below were read without comment.
Today I realized the "Add developer-view styles" not only does some stylistic things, it also hides entire chunks of content. So I guess that's useful, if you want to ignore the information for user agents. For my purposes, I'm reading everything.
2.2.1 Conformance classes
"User agents are not free to handle non-conformant documents as they please". Sites gotta fail consistently!
The spec's list of the categories of user agents:
- Web browsers and other interactive user agents
- Non-interactive presentation user agents
- Render HTML/XHTML docs w/o interactive capabilities
- Same conformance rules as web browsers, etc, except for the interactive bits
- Visual user agents that support the suggested default rendering
- Can be one of the above two categories, but supporting the default is not required
- This section talks about overriding some parts of the default rendering to make things more accessible the user. It seems odd that that wouldn't just be baked into the suggested rendering (legacy issue? Political issue?).
- User agents with no scripting support
- Conformance checkers
- "Automated conformance checkers are exempt from detecting errors that require interpretation of the author's intent."
- Data mining tools
- If you're not rendering a document, your requirements are centered around semantics.
- Authoring tools and markup generators
- Obviously, these need to spit out conforming documents.
- WYSIWYGs are included in this category, which is interesting because it is very possible (speaking as a person who has built many Wordpress sites for clients) for an individual to do some bananas stuff in a WYSIWYG editor.