Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTML General Review #174

Closed
torgo opened this issue Apr 28, 2017 · 17 comments
Closed

HTML General Review #174

torgo opened this issue Apr 28, 2017 · 17 comments

Comments

@torgo
Copy link
Member

torgo commented Apr 28, 2017

Placeholder for a HTML general review discussion that we have been discussing today.

Goal:

  • Pick a number of points on which to open separate issues, which we can then dig into and provide substantive feedback to HTML WG
@torgo torgo added this to the tag-f2f-london-2017-07-25 milestone Apr 28, 2017
@torgo torgo removed the extra time label Sep 26, 2017
@torgo torgo modified the milestones: tag-f2f-london-2017-07-25, tag-f2f-nice-2017 Sep 27, 2017
@tantek
Copy link

tantek commented Oct 17, 2017

subscribe

@domenic
Copy link
Member

domenic commented Oct 17, 2017

@tantek use the "Subscribe" button on the sidebar.

@tantek
Copy link

tantek commented Nov 15, 2017

@domenic apparently by mentioning me you subscribed me! "You’re receiving notifications because you were mentioned."

@dbaron
Copy link
Member

dbaron commented Jan 31, 2018

Discussed at London face-to-face. Though we're likely to continue discussion to tomorrow morning.

We need to figure out how to split this up.

One meta-point that came up briefly was the value of specifying requirements for document conformance, which is something that HTML does but few other Web specs do. This might be worth future discussion.

@nigelmegitt
Copy link

Examples of two specs that do specify document conformance requirements in very different ways, both from the TTWG:

@annevk
Copy link
Member

annevk commented Jan 31, 2018

CSS does as well. body { background:blue works, but is not valid.

It's not common for APIs, but for declarative formats it's fairly reasonable and establishes some rough notion of forward compatibility, by having things you're not supposed to use, but won't cause a fatal error either, thereby allowing for extensions.

@torgo torgo modified the milestones: tag-f2f-nice-2017, tag-telcon-2018-02-27 Feb 1, 2018
@travisleithead
Copy link
Contributor

For this issue, we have consensus to split this up into various more specific parts of HTML for individual review. @travisleithead tasked with proposing the logical review chunks.

@plinss plinss modified the milestones: 2018-02-27-telcon, 2018-03-14-telcon Mar 6, 2018
@travisleithead
Copy link
Contributor

travisleithead commented Mar 21, 2018

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 - david
HTML Lists
HTML Ruby - david
HTML Images
Browsing Contexts and Security
HTML Media
HTML Tables - david
HTML Forms
HTML Input
HTML Option Lists - david
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 - david
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.

@travisleithead
Copy link
Contributor

Some potential TODOs for each review:

  • Legacy APIs that could be 'modernized'?
  • Things that could require permissions that aren't modelled in the perms API?
  • Areas of the platform that are 'magic' (could use explaining in terms of extensible web manifesto)

@torgo
Copy link
Member Author

torgo commented Apr 24, 2018

We agreed to close this issue in favour of the new more granular issues that @travisleithead has opened up.

@torgo torgo closed this as completed Apr 24, 2018
@dbaron
Copy link
Member

dbaron commented Apr 24, 2018

Also see the above list as a list of issues.

@travisleithead
Copy link
Contributor

@domenic and @annevk FYI that we've sub-divided the TAG's monolithic HTML review issue into smaller, more focused issues. If there are sections (issues) you feel should get more attention/focus or have specific "features" that you'd like particular directed feedback, please let us know!

@annevk
Copy link
Member

annevk commented Apr 24, 2018

I'd love help untangling navigation/about:blank/general global and document lifecycle.

@dbaron
Copy link
Member

dbaron commented Apr 24, 2018

@annevk (and others): probably best to let us know in separate issues in this repo, and with a tad more detail. (On the other hand, I'm not sure if that issue is the sort that the TAG is well-suited to help with; it sounds like it might be more a matter of doing a lot of research into what the compatibility constraints are.)

@annevk
Copy link
Member

annevk commented Apr 24, 2018

Yeah, you're right.

I'm not sure there's much review to be done other than of the research kind. What we primarily need is additional resources to clear all the technical debt so we have a better foundation for the rest of the platform (pretty much all of which builds on top of HTML).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment