Rebuilds HTML elements as custom elements to identify missing web platform APIs and validate custom element design.
HTML as Custom Elements is an experimental project that recreates standard HTML elements using the custom elements specification. It aims to identify missing browser APIs that prevent custom elements from achieving parity with native elements, while also validating the custom elements design as a foundational layer for the web platform. The project serves as a research tool to improve the extensible web story by ensuring low-level capabilities are exposed to developers.
Browser engine developers, web standards contributors, and advanced web platform researchers interested in the future of custom elements and missing platform APIs. It's particularly relevant for those working on Chromium/Blink or Servo implementations.
This project provides concrete evidence of gaps in the web platform by attempting to rebuild HTML from scratch, offering a unique validation mechanism for the custom elements specification and driving API improvements that benefit all web developers.
HTML as Custom Elements
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
By recreating HTML elements as custom elements, the project identifies specific missing browser APIs, as shown in demos that outline missing features for each element.
It tests whether high-level declarative HTML can be built from low-level imperative APIs, validating the custom elements specification as a foundational layer for the web platform.
Includes a dedicated gap analysis document highlighting accessibility shortcomings in custom elements, providing concrete evidence for needed improvements.
Led by Blink team members with Servo team interest, aiming to influence browser engine development and standardization efforts directly.
The project is exploratory and not intended for production use, with code that may change as APIs evolve or are standardized, leading to breaking changes.
READEME admits custom elements lack true encapsulation compared to native elements, with current shadow DOM being permeable, limiting practical implementation without future fixes.
While it identifies gaps like accessibility issues, it doesn't provide ready-to-use solutions, requiring developers to wait for platform improvements or workarounds.