Re: [w3ctag/design-reviews] HTML General Review (#174)

## HTML "Sub-specs" review breakout proposal

The features enumerated below focus on areas of the spec with browser implementation requirements (such as processing models or algorithms), and mostly skip sections of conformance criteria. Also, features with little differentiation (e.g., `<small>`, `<u>`, `<b>`, etc.) are not included as there is not much to review for them anyway.

HTML Document and Elements
Structured Serialize/Deserialize
Custom Elements
HTML Linking
HTML Styling
HTML Lists
HTML Ruby
HTML Images
Browsing Contexts and Security
HTML Media
HTML Tables
HTML Forms
HTML Input
HTML Option Lists
HTML User Interaction
HTML Focus
HTML Scripting
HTML Templates
HTML Drawing
Microdata
Navigation and Browsing History
App Cache
HTML Utilities
HTML Parsing
HTML Timers and Timeslicing
Server-Sent Events
Web Sockets
Cross-Document Messaging
Web Workers
Web Storage
XML Infrastructure
HTML Obsolete Features
IANA Registries

(33 groups)

## DETAILED BREAKDOWN

The "Features" are just a sample of what you will encounter as part of the listed spec sections, it's not meant to be exhaustive.

The "Sections" are all the sections of the HTML spec that would be included in the "sub spec" review. I tried to group sections of the spec that made sense together and favored each "sub-spec" with a good balance of size and complexity--though some "sub-specs" are definately bigger than others. There's still lots of entanglement, but I think this is a pretty good first attempt. Where the spec section has associated Web Platform Tests, the specific WPT path is noted.

### HTML Document and Elements

|Sections|WPT path|Features|
|-|-|-|
| 2.6.1 | html/dom/reflection-*.html | property/attribute reflection |
| 2.6.2 to 2.6.4 | html/infrastructure/common-dom-interfaces | collections |
| 3.1 | html/dom/documents | `document` |
| 3.2 | html/dom/elements | `htmlelement` |
| 4.2.2 | html/semantics/document-metadata/the-title-element | `<title>` |
| 4.2.5 | html/semantics/document-metadata/the-meta-element | `<meta>` |
| 4.3.11 | html/semantics/sections/headings-and-sections (no tests) | outline algorithm |
| 8.1.5 | (no tests) | events and event handlers |


### Structured Serialize/Deserialize

|Sections|WPT path|Features|
|-|-|-|
| 2.7 | html/infrastructure/safe-passing-of-structured-data | passing/storing structured data |

### Custom Elements

|Sections|WPT path|Features|
|-|-|-|
| 3.2.3 | custom-elements/htmlconstructor | |
| 4.13 | custom-elements | `<my-element>` |

### HTML Linking

|Sections|WPT path|Features|
|-|-|-|
| 2.4 | html/infrastructure/urls | dynamic changes to base URL |
| 4.2.3 | html/semantics/document-metadata/the-base-element | `<base>` |
| 4.2.4 | html/semantics/document-metadata/the-link-element | `<link>` |
| 4.5.1 | html/semantics/text-level-semantics/the-a-element | `<a>` |
| 4.6 | html/semantics/links | link types |
| 4.6.6.17 | preload | (preload link type) |

### HTML Styling

|Sections|WPT path|Features|
|-|-|-|
| 3.2.7 | innerText | `innerText` (returns an element's text "as rendered") |
| 4.2.6 | html/semantics/document-metadata/the-style-element | `<style>` |
| | html/semantics/document-metadata/styling | |
| 4.2.7 | html/semantics/document-metadata/interactions-of-styling-and-scripting | |
| 14.1 to 14.8 | html/rendering | CSS UA stylesheet rendering |

### HTML Lists

|Sections|WPT path|Features|
|-|-|-|
| 4.4.8 | html/semantics/grouping-content/the-li-element | `<li>` |
| 4.4.5 | html/semantics/grouping-content/the-ol-element | `<ol>` |

### HTML Ruby

|Sections|WPT path|Features|
|-|-|-|
| 4.5.10 | html/semantics/text-level-semantics/the-ruby-element | `<ruby>`, `<rt>`, `<rp>` |

### HTML Images

|Sections|WPT path|Features|
|-|-|-|
| 4.8.1 to 4.8.4 | (no picture element tests?) | `<picture>`, `<source>` |
| 4.8.3 | html/semantics/embedded-content/the-img-element | `<img>`, `decode()` (see #182) |
| 4.8.13 to 4.8.15 | html/semantics/embedded-content/image-maps | image maps |

### Browsing Contexts and Security

|Sections|WPT path|Features|
|-|-|-|
| 4.8.5 | html/semantics/embedded-content/the-iframe-element | `<iframe>`, `srcdoc` |
| 4.8.6 | html/semantics/embedded-content/the-embed-element | `<embed>` |
| 4.8.7 | html/semantics/embedded-content/the-object-element | `<object>` |
| 7.1 | html/browsers/windows | browsing contexts |
| 7.2 to 7.3 | html/browsers/the-window-object | cross-realm security model, `window`, `window.open()` |
| 7.4 | html/browsers/the-windowproxy-exotic-object | `window` |
| 7.5 | html/browsers/origin | |
| 7.6 | html/browsers/sandboxing | `sandbox` |
| 8.2 | html/webappapis/the-windoworworkerglobalscope-mixin | `self.origin` |

### HTML Media

|Sections|WPT path|Features|
|-|-|-|
| 4.8.9 | html/semantics/embedded-content/the-video-element  | `<video>` |
| 4.8.10 | html/semantics/embedded-content/the-audio-element  | `<audio>` |
| 4.8.11 | html/semantics/embedded-content/media-elements/track/track-element  | `<track>` |
| 4.8.12 | html/semantics/embedded-content/media-elements  | media process model |

### HTML Tables

|Sections|WPT path|Features|
|-|-|-|
| 4.9 | html/semantics/tabular-data | `<table>` et al. |

### HTML Forms

|Sections|WPT path|Features|
|-|-|-|
| 4.10.3 | html/semantics/forms/the-form-element | `<form>` |
| 4.10.15 | html/semantics/forms/the-fieldset-element | `<fieldset>` |
| 4.10.17 | html/semantics/forms/form-control-infrastructure | process model |
| 4.10.18 | html/semantics/forms/attributes-common-to-form-controls | `autocomplete`, `maxlength`, etc. |
| 4.10.18.5 (see also 4.15) | html/semantics/disabled-elements | enable/disable |
| 4.10.20 | html/semantics/forms/constraints | constraint validation |
| 4.10.21 | html/semantics/forms/form-submission-0 | form submission |
| 4.10.22 | html/semantics/forms/resetting-a-form | form reset |

### HTML Input

|Sections|WPT path|Features|
|-|-|-|
| 4.10.5 | html/semantics/forms/the-input-element | `<input>` |
| 4.10.5.3.10 | html/input/the-placeholder-attribute | `placeholder` |
| 4.10.6 | html/semantics/forms/the-button-element | `<button>` |
| 4.10.11 | html/semantics/forms/the-textarea-element | `<textarea>` |
| 4.10.11 | html/form-elements/the-textarea-element | |
| 4.10.13 | html/semantics/forms/the-progress-element | `<progress>` |
| 4.10.14 | html/semantics/forms/the-meter-element | `<meter>` |
| 4.10.19 | html/semantics/forms/textfieldselection | selection API
| 6.6 | html/editing/editing-0 | `contenteditable`, `inputmode` |

### HTML Option Lists

|Sections|WPT path|Features|
|-|-|-|
| 4.10.7 | html/semantics/forms/the-select-element | `<select>` |
| 4.10.8 | html/semantics/forms/the-datalist-element | `<datalist>` |
| 4.10.8 | html/semantics/forms/the-optgroup-element | `<optgroup>` |
| 4.10.10 | html/semantics/forms/the-option-element | `<option>` |

### HTML User Interaction

|Sections|WPT path|Features|
|-|-|-|
| 4.11 | html/semantics/interactive-elements | `<summary>`, `<details>`, `<dialog>` |
| 6.1 | html/editing/the-hidden-attribute | `hidden` |
| 6.3 | html/editing/activation | inert, activation |
| 6.7 | html/editing/dnd | drag-and-drop |

### HTML Focus

|Sections|WPT path|Features|
|-|-|-|
| 6.4 | html/editing/focus | `focus()`, `tabindex` |
| 6.5 | (no tests for accesskey other than conformance-checkers/html/attributes/accesskey) | `accesskey` |

### HTML Scripting

|Sections|WPT path|Features|
|-|-|-|
| 4.12.1 to 4.12.2 | html/semantics/scripting-1/the-script-element | `<script>` |
| 8.1.1 to 8.1.4 | html/webappapis/scripting | scripting process model, script errors/promise rejections, event loop |

### HTML Templates

|Sections|WPT path|Features|
|-|-|-|
| 4.12.3 | html/semantics/scripting-1/the-template-element | `<template>` |

### HTML Drawing

|Sections|WPT path|Features|
|-|-|-|
| 4.12.5 | html/semantics/embedded-content/the-canvas-element | `<canvas>` |
| 4.12.5.1 to 4.12.5.2 | 2dcontext | 2d context |
| 4.12.5.3 | offscreen-canvas | `OffscreenCanvas` (see also review #141) |
| 8.8 | (no tests?) | imagebitmap (see also review #141) |

### Microdata

|Sections|WPT path|Features|
|-|-|-|
| 5 | (no tests) | `itemscope`, `itemprop` |

### Navigation and Browsing History

|Sections|WPT path|Features|
|-|-|-|
| 7.7 | html/browsers/history | `history`, `location`
| 7.8 | html/browsers/browsing-the-web | page load processing model, history traversal, unloading a document |

### App Cache

|Sections|WPT path|Features|
|-|-|-|
| 7.9 | html/browsers/offline | application cache |

### HTML Utilities

|Sections|WPT path|Features|
|-|-|-|
| 8.3 | html/webappapis/atob | base 64 converter |
| 8.6.1 | (user prompts, no tests?) | `alert()` |
| 8.6.2 | (printing, no tests?) | `print()` |
| 8.7 | html/webappapis/system-state-and-capabilities | `navigator`, protocol handlers |

### HTML Parsing

|Sections|WPT path|Features|
|-|-|-|
| 8.4 | html/webappapis/dynamic-markup-insertion | `document.write()` |
| 12.2 | html/syntax/parsing | Parsing algorithm |
| 12.4 | html/syntax/parsing-html-fragments | fragment parsing |
| 12.3 | html/syntax/serializing-html-fragments | fragment serialization |

### HTML Timers and Timeslicing

|Sections|WPT path|Features|
|-|-|-|
| 8.5 | html/webappapis/timers | `setTimeout()` |
| 8.9 | html/webappapis/animation-frames | `requestAnimationFrame()` |

### Server-Sent Events

|Sections|WPT path|Features|
|-|-|-|
| 9.2 | eventsource | `EventSource` |

### Web Sockets

|Sections|WPT path|Features|
|-|-|-|
| 9.3 | websockets | `WebSocket` |

### Cross-Document Messaging

|Sections|WPT path|Features|
|-|-|-|
| 9.1, 9.4 | webmessaging | `MessageChannel`, `BroadcastChannel` |

### Web Workers

|Sections|WPT path|Features|
|-|-|-|
| 10 | workers | dedicated and shared workers |

### Web Storage

|Sections|WPT path|Features|
|-|-|-|
| 11 | webstorage | `sessionStorage` and `localStorage` |

### XML Infrastructure

|Sections|WPT path|Features|
|-|-|-|
| 2.1.11 | domxpath | XPath/XSLT tweaks for HTML |
| 13 | html/syntax/serializing-xml-fragments | XML parsing/serializing |
| (see also) | domparser | `innerHTML`, XML serialization |
| 14.9 | html/rendering/unstyled-xml-documents | rendering un-styled XML documents |

### HTML Obsolete Features

|Sections|WPT path|Features|
|-|-|-|
| 15 | html/obsolete | `<marquee>`, `<frame>`, etc. |

### IANA Registries

|Sections|WPT path|Features|
|-|-|-|
| 16 | html/iana (no tests) | registries meant for IANA |

**note**: the `<slot>` element is not included in any group, since it seemed more like a Shadow DOM-dependent feature, which we would review as part of DOM.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/design-reviews/issues/174#issuecomment-375101168

Received on Wednesday, 21 March 2018 21:26:19 UTC