Standards alignment
This page is generated from the
## N. Standards Alignment
tables in the specifications and from
scripts/docs/standards.json
. The conformance vocabulary and the rules for citing a standard live in
specs/standards.md
. Regenerate with
bun run docs:generate
; the rows are checked by
bun run docs:standards
.
Conformance at a glance
| Class | Standards | Bindings |
|---|---|---|
Adopted |
25 | 35 |
Subset |
48 | 100 |
Divergent |
5 | 7 |
Borrowed |
5 | 5 |
Pending |
0 | 0 |
Rejected |
6 | 6 |
| (backlog) | 2 | — |
Standards Jx implements
| Standard | Body | Class | Where | Evidence |
|---|---|---|---|---|
ECMAScript Language Specification
ECMA-262 |
Ecma | Adopted |
compiler.md
§4,
compiler.md
§5 |
packages/compiler/src/targets/compile-element.ts
,
packages/compiler/tests/no-eval.test.ts |
ECMAScript Language Specification
ECMA-262 |
Ecma | Subset |
embedding.md
§4 |
packages/runtime/src/expression.ts
,
packages/runtime/tests/call-owner.test.ts |
ECMAScript Language Specification
ECMA-262 |
Ecma | Adopted |
imports.md
§3 |
packages/runtime/src/runtime.ts |
ECMAScript Language Specification
ECMA-262 |
Ecma | Subset |
spec.md
§19,
spec.md
§20 |
packages/runtime/src/expression.ts
,
packages/runtime/tests/expression.test.ts |
ECMAScript Internationalization API Specification
ECMA-402 |
Ecma | Subset |
site-architecture.md
§13.4,
site-architecture.md
§13.7 |
packages/schema/src/intl.ts
,
packages/schema/src/locale.ts
,
packages/schema/tests/intl.test.ts
,
packages/runtime/tests/expression.test.ts |
ECMAScript Internationalization API Specification
ECMA-402 |
Ecma | Borrowed |
studio.md
§20 |
packages/schema/src/locale.ts |
The JSON Data Interchange Syntax
ECMA-404 |
Ecma | Adopted |
spec.md
§3 |
packages/schema/src/parse.ts |
gitignore(5) — Specifies intentionally untracked files to ignore
Gitignore |
Git | Subset |
studio.md
§9.1.4 |
packages/studio/src/files/gitignore.ts
,
packages/studio/tests/gitignore-conformance.test.ts
,
packages/studio/tests/gitignore.test.ts |
IANA IPv4 Special-Purpose Address Registry
IANA IPv4 Special-Purpose Address Registry |
IANA | Subset |
ai.md
§4 |
packages/server/src/ai-api.ts |
IANA IPv4 Special-Purpose Address Registry
IANA IPv4 Special-Purpose Address Registry |
IANA | Adopted |
server.md
§4.2 |
packages/server/src/net-guard.ts
,
packages/server/tests/net-guard.test.ts |
IANA IPv6 Special-Purpose Address Registry
IANA IPv6 Special-Purpose Address Registry |
IANA | Subset |
ai.md
§4 |
packages/server/src/ai-api.ts |
Key words for use in RFCs to Indicate Requirement Levels
BCP 14 |
IETF | Adopted |
standards.md
§12 |
specs/standards.md#12 |
Tags for Identifying Languages
BCP 47 |
IETF | Subset |
schema.md
§3.2 |
packages/schema/src/locale.ts
,
packages/schema/defs/project-config.schema.ts
,
packages/schema/tests/locale.test.ts
,
packages/schema/tests/validate-project.test.ts |
Tags for Identifying Languages
BCP 47 |
IETF | Subset |
site-architecture.md
§13.2,
site-architecture.md
§13.4 |
packages/schema/src/locale.ts
,
packages/schema/tests/locale.test.ts
,
packages/compiler/src/site/i18n.ts |
Tags for Identifying Languages
BCP 47 |
IETF | Subset |
studio.md
§20 |
packages/schema/src/locale.ts
,
packages/schema/tests/locale.test.ts
,
packages/studio/src/settings/locales-section.ts |
Date and Time on the Internet: Timestamps
RFC 3339 |
IETF | Subset |
parser.md
§9.3 |
extensions/parser/src/dates.ts
,
extensions/parser/tests/dates.test.ts |
Uniform Resource Identifier (URI): Generic Syntax
RFC 3986 |
IETF | Subset |
parser.md
§9.6 |
extensions/parser/src/content-links.ts
,
extensions/parser/tests/content-links.test.ts |
Uniform Resource Identifier (URI): Generic Syntax
RFC 3986 |
IETF | Subset |
site-architecture.md
§14.7 |
packages/schema/src/asset-paths.ts
,
packages/compiler/src/site/base-path.ts
,
packages/schema/tests/asset-paths.test.ts
,
packages/compiler/tests/base-path.test.ts |
Uniform Resource Identifier (URI): Generic Syntax
RFC 3986 |
IETF | Subset |
standards.md
§5.2 |
scripts/docs/lib/standards.ts |
Common Format and MIME Type for CSV Files
RFC 4180 |
IETF | Subset |
parser.md
§4 |
extensions/parser/src/csv.ts
,
extensions/parser/tests/csv.test.ts |
The Atom Syndication Format
RFC 4287 |
IETF | Subset |
site-architecture.md
§6.7 |
extensions/feed/src/atom.ts
,
extensions/feed/tests/feed.test.ts |
Matching of Language Tags
RFC 4647 |
IETF | Subset |
site-architecture.md
§13.6 |
packages/compiler/src/site/locale-negotiation.ts
,
packages/compiler/tests/locale-negotiation.test.ts
,
packages/compiler/tests/locale-worker.test.ts |
Feed Paging and Archiving
RFC 5005 |
IETF | Subset |
site-architecture.md
§6.7 |
extensions/feed/src/feed.ts
,
extensions/feed/tests/feed.test.ts |
HTTP State Management Mechanism
RFC 6265 |
IETF | Adopted |
extensions.md
§13.1 |
extensions/auth/src/config.ts
,
extensions/auth/tests/config.test.ts |
The WebSocket Protocol
RFC 6455 |
IETF | Adopted |
collab.md
§2,
collab.md
§2.1 |
packages/collab/src/negotiate.ts
,
packages/server/src/collab.ts
,
packages/collab/tests/negotiate.test.ts
,
packages/server/tests/collab-api.test.ts |
HTTP Strict Transport Security (HSTS)
RFC 6797 |
IETF | Subset |
site-architecture.md
§14.3 |
packages/compiler/src/site/headers-emitter.ts |
Media Type Specifications and Registration Procedures
RFC 6838 |
IETF | Adopted |
extensions.md
§7 |
packages/schema/src/media-type.ts
,
packages/schema/tests/media-type.test.ts |
JavaScript Object Notation (JSON) Pointer
RFC 6901 |
IETF | Borrowed |
relationships.md
§1 |
packages/schema/schemas/project.core.schema.json |
JavaScript Object Notation (JSON) Pointer
RFC 6901 |
IETF | Divergent |
spec.md
§7 |
packages/runtime/src/pointer.ts |
The I-JSON Message Format
RFC 7493 |
IETF | Subset |
schema.md
§3.4 |
packages/schema/src/ijson.ts
,
packages/schema/tests/ijson.test.ts
,
packages/schema/tests/parse.test.ts |
Proof Key for Code Exchange by OAuth Public Clients
RFC 7636 |
IETF | Adopted |
desktop.md
§3.6 |
packages/server/src/oauth-loopback.ts
,
packages/desktop/src/github-signin.ts
,
packages/server/tests/oauth-loopback.test.ts
,
packages/desktop/tests/github-signin.test.ts |
The text/markdown Media Type
RFC 7763 |
IETF | Adopted |
extensions.md
§7 |
extensions/parser/src/Markdown.class.json
,
packages/schema/tests/media-type.test.ts |
The text/markdown Media Type
RFC 7763 |
IETF | Adopted |
parser.md
§3 |
extensions/parser/src/Markdown.class.json
,
packages/schema/src/media-type.ts
,
packages/schema/tests/class-schema-drift.test.ts |
Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations
RFC 7764 |
IETF | Subset |
extensions.md
§7 |
extensions/parser/src/Markdown.class.json |
HTTP Immutable Responses
RFC 8246 |
IETF | Adopted |
site-architecture.md
§14.3 |
packages/compiler/src/site/headers-emitter.ts
,
packages/compiler/tests/headers-emitter.test.ts |
OAuth 2.0 for Native Apps
RFC 8252 |
IETF | Adopted |
desktop.md
§3.6 |
packages/server/src/oauth-loopback.ts
,
packages/desktop/src/github-signin.ts
,
packages/server/tests/oauth-loopback.test.ts
,
packages/desktop/tests/github-signin.test.ts |
Web Linking
RFC 8288 |
IETF | Subset |
site-architecture.md
§8.1,
site-architecture.md
§8.3,
site-architecture.md
§13.5 |
packages/site/src/head-merger.ts
,
packages/compiler/src/site/link-relations.ts
,
packages/site/tests/head-merger.test.ts
,
packages/compiler/tests/link-relations.test.ts |
Well-Known Uniform Resource Identifiers
RFC 8615 |
IETF | Adopted |
site-architecture.md
§14.5 |
packages/compiler/src/site/well-known.ts |
HTTP Semantics
RFC 9110 |
IETF | Subset |
schema.md
§3.2 |
packages/schema/defs/project-config.schema.ts |
HTTP Semantics
RFC 9110 |
IETF | Subset |
site-architecture.md
§11.3,
site-architecture.md
§13.6 |
packages/compiler/src/site/site-build.ts
,
packages/compiler/src/site/locale-negotiation.ts |
HTTP Caching
RFC 9111 |
IETF | Adopted |
server.md
§3 |
packages/server/src/server.ts |
HTTP Caching
RFC 9111 |
IETF | Adopted |
site-architecture.md
§14.3 |
packages/compiler/src/site/headers-emitter.ts
,
packages/compiler/tests/headers-emitter.test.ts |
A File Format to Aid in Security Vulnerability Disclosure
RFC 9116 |
IETF | Subset |
site-architecture.md
§14.5 |
packages/compiler/src/site/well-known.ts
,
packages/compiler/tests/well-known.test.ts |
Robots Exclusion Protocol
RFC 9309 |
IETF | Adopted |
site-architecture.md
§8.4.1 |
packages/compiler/src/site/site-build.ts |
Problem Details for HTTP APIs
RFC 9457 |
IETF | Subset |
ai.md
§2 |
packages/ai/src/gateway/problem.ts
,
packages/ai/src/gateway/normalize.ts
,
packages/server/src/ai-api.ts
,
packages/ai/src/streaming-client.ts |
Problem Details for HTTP APIs
RFC 9457 |
IETF | Subset |
desktop.md
§5 |
packages/protocol/src/problem.ts
,
packages/protocol/src/problems.ts
,
packages/protocol/tests/problem.test.ts
,
packages/studio/src/platform-errors.ts
,
packages/studio/tests/platform-errors.test.ts |
Problem Details for HTTP APIs
RFC 9457 |
IETF | Subset |
server.md
§4.3 |
packages/server/src/problem.ts
,
packages/server/scripts/check-error-shapes.ts
,
packages/server/tests/problem.test.ts |
Problem Details for HTTP APIs
RFC 9457 |
IETF | Subset |
studio.md
§16 |
packages/studio/src/platform-errors.ts
,
packages/studio/src/platforms/devserver.ts
,
packages/studio/tests/platform-errors.test.ts |
YAML Media Type
RFC 9512 |
IETF | Adopted |
parser.md
§3 |
packages/schema/src/media-type.ts
,
packages/schema/tests/media-type.test.ts
,
packages/compiler/tests/preview-server.test.ts |
JSON Schema, draft 2020-12
JSON Schema 2020-12 |
JSON Schema | Adopted |
extensions.md
§5 |
packages/schema/src/project-schemas.ts
,
packages/schema/tests/project-schemas.test.ts |
JSON Schema, draft 2020-12
JSON Schema 2020-12 |
JSON Schema | Adopted |
relationships.md
§1 |
packages/schema/defs/field-schema.schema.ts
,
packages/schema/tests/project-schemas.test.ts |
JSON Schema, draft 2020-12
JSON Schema 2020-12 |
JSON Schema | Adopted |
schema.md
§3,
schema.md
§5 |
packages/schema/src/schema.ts
,
packages/schema/tests/schema.test.ts |
JSON Schema, draft 2020-12
JSON Schema 2020-12 |
JSON Schema | Divergent |
spec.md
§3.2,
spec.md
§5 |
packages/schema/src/schema.ts
,
packages/schema/tests/schema.test.ts |
CommonMark Spec
CommonMark |
Other | Subset |
jx-markdown.md
§9 |
extensions/parser/src/transpile.ts
,
extensions/parser/tests/transpile.test.ts |
CommonMark Spec
CommonMark |
Other | Subset |
parser.md
§3 |
extensions/parser/src/md.ts
,
extensions/parser/tests/transpile.test.ts |
GitHub Flavored Markdown Spec
GFM |
Other | Subset |
parser.md
§3 |
extensions/parser/src/md.ts |
JSON Feed Version 1.1
JSON Feed 1.1 |
Other | Subset |
site-architecture.md
§6.7 |
extensions/feed/src/json-feed.ts
,
extensions/feed/tests/feed.test.ts |
Sitemaps XML format
Sitemaps 0.9 |
Other | Subset |
site-architecture.md
§8.4.1,
site-architecture.md
§13.5 |
packages/compiler/src/site/site-build.ts
,
packages/compiler/src/site/pages-discovery.ts
,
packages/compiler/tests/sitemap-lastmod.test.ts |
Unicode Normalization Forms
UAX #15 |
Unicode | Adopted |
parser.md
§3 |
extensions/parser/src/transpile.ts
,
extensions/parser/tests/transpile.test.ts |
Unicode Text Segmentation
UAX #29 |
Unicode | Adopted |
parser.md
§3 |
extensions/parser/src/md.ts
,
extensions/parser/tests/md-units.test.ts |
Unicode Identifiers and Syntax
UAX #31 |
Unicode | Subset |
schema.md
§3.5 |
packages/schema/src/parse.ts
,
packages/schema/tests/parse.test.ts |
Unicode Bidirectional Algorithm
UAX #9 |
Unicode | Subset |
site-architecture.md
§13.4 |
packages/schema/src/locale.ts
,
packages/schema/tests/locale.test.ts |
Unicode Bidirectional Algorithm
UAX #9 |
Unicode | Subset |
studio.md
§20.2 |
packages/schema/src/locale.ts
,
packages/studio/src/canvas/iframe-entry.ts
,
packages/studio/tests/iframe-entry.test.ts |
Unicode Locale Data Markup Language (LDML)
UTS #35 |
Unicode | Borrowed |
site-architecture.md
§13.4 |
packages/schema/src/locale.ts |
Authoring Tool Accessibility Guidelines (ATAG) 2.0
ATAG 2.0 |
W3C | Subset |
studio-ui-guidelines.md
§8,
studio-ui-guidelines.md
§13.1a |
packages/studio/src/services/announce.ts
,
packages/studio/src/services/a11y-report.ts |
Authoring Tool Accessibility Guidelines (ATAG) 2.0
ATAG 2.0 |
W3C | Subset |
studio.md
§16.6 |
packages/studio/src/services/a11y-report.ts
,
packages/studio/tests/a11y-report.test.ts
,
packages/studio/src/panels/head-panel.ts |
Accessible Name and Description Computation 1.2
Accessible Name and Description Computation |
W3C | Subset |
spec.md
§8.8 |
packages/schema/src/a11y.ts
,
packages/schema/tests/a11y.test.ts |
Accessible Name and Description Computation 1.2
Accessible Name and Description Computation |
W3C | Adopted |
studio-ui-guidelines.md
§10 |
packages/studio/src/panels/problems-panel.ts |
Accessible Name and Description Computation 1.2
Accessible Name and Description Computation |
W3C | Subset |
ui.md
§5,
ui.md
§8 |
packages/ui/components/jx-icon.json
,
packages/ui/tests/icon.test.ts
,
packages/ui/tests/conformance.test.ts
,
packages/ui/tests/textfield.test.ts |
Content Security Policy Level 3
CSP Level 3 |
W3C | Subset |
compiler.md
§3 |
packages/compiler/tests/no-eval.test.ts
,
packages/compiler/src/site/csp.ts |
Content Security Policy Level 3
CSP Level 3 |
W3C | Divergent |
site-architecture.md
§14.3.1 |
packages/compiler/src/site/csp.ts
,
packages/compiler/tests/csp.test.ts
,
packages/compiler/tests/site-build.test.ts |
Content Security Policy Level 3
CSP Level 3 |
W3C | Divergent |
spec.md
§21 |
packages/compiler/tests/no-eval.test.ts |
CSS Anchor Positioning Module Level 1
CSS Anchor Positioning |
W3C | Subset |
ui.md
§6 |
packages/ui/components/jx-popover.json
,
packages/ui/components/jx-menu.json
,
packages/ui/components/jx-tooltip.json
,
packages/ui/src/behaviors/popover.ts
,
packages/ui/tests/popover.test.ts
,
packages/ui/tests/menu.test.ts
,
packages/ui/tests/tooltip.test.ts |
CSS Animations Level 1
CSS Animations |
W3C | Subset |
spec.md
§9.2 |
packages/runtime/src/css.ts
,
packages/runtime/tests/css.test.ts |
CSS Cascading and Inheritance Level 5
CSS Cascade Layers |
W3C | Subset |
ui.md
§9 |
packages/ui/src/theme.ts
,
packages/ui/tests/theme.test.ts |
CSS Color Module Level 4
CSS Color 4 |
W3C | Adopted |
spec.md
§9.5 |
packages/compiler/src/shared.ts
,
packages/compiler/tests/shared.test.ts |
CSS Color Module Level 5
CSS Color 5 |
W3C | Subset |
ui.md
§4 |
packages/ui/project.json
,
packages/ui/tests/theme.test.ts |
CSS Custom Properties for Cascading Variables Module Level 1
CSS Custom Properties for Cascading Variables |
W3C | Adopted |
ui.md
§4 |
packages/ui/project.json
,
packages/ui/src/theme.ts
,
packages/ui/tests/theme.test.ts |
CSS Nesting Module
CSS Nesting |
W3C | Borrowed |
spec.md
§9.2 |
packages/runtime/src/css.ts
,
packages/runtime/tests/css.test.ts |
CSS Properties and Values API Level 1
CSS Properties and Values API |
W3C | Subset |
ui.md
§4 |
packages/ui/project.json
,
packages/ui/tests/theme.test.ts |
CSS Scoping Module Level 1
CSS Scoping |
W3C | Subset |
spec.md
§16.6 |
packages/compiler/src/shared.ts
,
packages/compiler/tests/shadow-dom.test.ts |
CSS Scoping Module Level 1
CSS Scoping |
W3C | Subset |
ui.md
§3 |
packages/ui/tests/conformance.test.ts
,
packages/runtime/src/runtime.ts |
CSS Shadow Parts
CSS Shadow Parts |
W3C | Subset |
ui.md
§3,
ui.md
§8 |
packages/ui/components/jx-icon.json
,
packages/ui/tests/icon.test.ts
,
packages/ui/tests/conformance.test.ts |
CSS Transitions Level 2
CSS Transitions 2 |
W3C | Subset |
ui.md
§6 |
packages/ui/components/jx-popover.json
,
packages/ui/components/jx-tooltip.json
,
packages/ui/components/jx-toast.json
,
packages/ui/tests/popover.test.ts |
CSS Object Model (CSSOM)
CSSOM |
W3C | Adopted |
embedding.md
§2 |
packages/runtime/src/runtime.ts
,
packages/runtime/tests/mount.test.ts |
CSS Object Model (CSSOM)
CSSOM |
W3C | Subset |
schema.md
§3,
schema.md
§4 |
packages/schema/src/schema.ts |
CSS Object Model (CSSOM)
CSSOM |
W3C | Adopted |
spec.md
§9.1,
spec.md
§9.6 |
packages/runtime/src/runtime.ts
,
packages/runtime/tests/stylesheet-engine.test.ts |
Fetch Metadata Request Headers
Fetch Metadata Request Headers |
W3C | Divergent |
server.md
§4.2 |
packages/server/src/net-guard.ts
,
packages/server/tests/net-guard.test.ts |
JSON-LD 1.1
JSON-LD 1.1 |
W3C | Subset |
site-architecture.md
§8.5 |
packages/site/src/head-merger.ts
,
packages/site/tests/head-merger.test.ts |
Media Queries Level 5
Media Queries 5 |
W3C | Subset |
ui.md
§4 |
packages/ui/project.json
,
packages/ui/tests/theme.test.ts |
Permissions Policy
Permissions Policy |
W3C | Subset |
site-architecture.md
§14.3 |
packages/compiler/src/site/headers-emitter.ts |
Referrer Policy
Referrer Policy |
W3C | Adopted |
site-architecture.md
§14.3 |
packages/compiler/src/site/headers-emitter.ts |
Service Workers
Service Workers |
W3C | Subset |
site-architecture.md
§14.6 |
packages/compiler/src/site/service-worker.ts
,
packages/compiler/tests/service-worker.test.ts |
Subresource Integrity
Subresource Integrity |
W3C | Divergent |
compiler.md
§12 |
packages/compiler/src/site/client-runtime.ts
,
packages/compiler/tests/client-runtime.test.ts |
Trusted Types
Trusted Types |
W3C | Subset |
spec.md
§21.5 |
packages/studio/src/services/trusted-types.ts
,
packages/studio/tests/trusted-types.test.ts
,
packages/compiler/src/targets/compile-element.ts |
Accessible Rich Internet Applications (WAI-ARIA) 1.2
WAI-ARIA |
W3C | Subset |
spec.md
§8.8 |
packages/schema/src/a11y.ts
,
packages/schema/tests/a11y.test.ts |
Accessible Rich Internet Applications (WAI-ARIA) 1.2
WAI-ARIA |
W3C | Subset |
studio-ui-guidelines.md
§6,
studio-ui-guidelines.md
§8,
studio-ui-guidelines.md
§12 |
packages/studio/src/files/files.ts
,
packages/studio/src/panels/layers-panel.ts
,
packages/studio/src/editor/context-menu.ts
,
packages/studio/src/panels/settings-menu.ts
,
packages/studio/src/panels/quick-search.ts
,
packages/studio/src/ui/layers.ts |
Accessible Rich Internet Applications (WAI-ARIA) 1.2
WAI-ARIA |
W3C | Subset |
studio.md
§16 |
packages/studio/src/services/announce.ts
,
packages/studio/tests/announce.test.ts
,
packages/studio/src/ui/layers.ts |
Accessible Rich Internet Applications (WAI-ARIA) 1.2
WAI-ARIA |
W3C | Subset |
ui.md
§5,
ui.md
§6,
ui.md
§7 |
packages/ui/tests/conformance.test.ts
,
packages/ui/tests/menu.test.ts
,
packages/ui/tests/tabs.test.ts
,
packages/ui/tests/dialog.test.ts
,
packages/ui/tests/action-group.test.ts
,
packages/ui/tests/switch.test.ts
,
packages/ui/tests/spinner.test.ts
,
packages/ui/tests/tooltip.test.ts
,
packages/ui/tests/divider.test.ts
,
packages/ui/tests/jx-tree.test.ts
,
packages/ui/tests/jx-tree-item.test.ts
,
packages/ui/tests/listbox.test.ts
,
packages/ui/tests/combobox.test.ts
,
packages/schema/tests/a11y.test.ts |
Web Content Accessibility Guidelines (WCAG) 2.2
WCAG 2.2 |
W3C | Subset |
spec.md
§8.8 |
packages/schema/src/a11y.ts
,
packages/schema/tests/a11y.test.ts
,
packages/studio/src/services/a11y-report.ts |
Web Content Accessibility Guidelines (WCAG) 2.2
WCAG 2.2 |
W3C | Subset |
studio-ui-guidelines.md
§1.1,
studio-ui-guidelines.md
§8.2,
studio-ui-guidelines.md
§8.7 |
packages/studio/src/services/announce.ts
,
packages/studio/styles/forced-colors.css
,
packages/studio/scripts/check-styles.ts
,
packages/studio/tests/announce.test.ts |
Web Content Accessibility Guidelines (WCAG) 2.2
WCAG 2.2 |
W3C | Subset |
ui.md
§4,
ui.md
§5,
ui.md
§7 |
packages/ui/tests/conformance.test.ts
,
packages/ui/tests/theme.test.ts
,
packages/ui/tests/tooltip.test.ts
,
packages/ui/tests/jx-toast.test.ts
,
packages/ui/tests/split.test.ts
,
packages/ui/tests/color-area.test.ts
,
packages/ui/tests/menu.test.ts
,
packages/ui/tests/jx-tree.test.ts
,
packages/ui/tests/toolbar.test.ts
,
packages/studio/scripts/check-styles.ts |
Web Application Manifest
Web Application Manifest |
W3C | Subset |
site-architecture.md
§14.5 |
packages/compiler/src/site/well-known.ts
,
packages/compiler/tests/well-known.test.ts |
WebDriver BiDi
WebDriver BiDi |
W3C | Adopted |
studio-ui-guidelines.md
§15 |
scripts/screenshots/lib/browser.ts
,
scripts/screenshots/lib/browser.test.ts
,
scripts/screenshots/lib/shot.ts |
DOM Standard
WHATWG DOM |
WHATWG | Subset |
embedding.md
§2,
embedding.md
§4 |
packages/runtime/src/runtime.ts
,
packages/runtime/tests/mount.test.ts |
DOM Standard
WHATWG DOM |
WHATWG | Subset |
spec.md
§16,
spec.md
§20 |
packages/compiler/src/targets/compile-element.ts |
Fetch Standard
WHATWG Fetch |
WHATWG | Adopted |
server.md
§4.2 |
packages/server/src/net-guard.ts
,
packages/server/tests/net-guard.test.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
ai.md
§2 |
packages/ai/src/gateway/sse.ts
,
packages/ai/tests/gateway-sse.test.ts
,
packages/server/src/ai-api.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
compiler.md
§3,
compiler.md
§4 |
packages/compiler/src/targets/compile-element.ts |
HTML Standard
WHATWG HTML |
WHATWG | Borrowed |
imports.md
§1 |
packages/compiler/src/site/site-build.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
schema.md
§3,
schema.md
§4 |
packages/schema/src/schema.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
server.md
§3.1,
server.md
§3.4 |
packages/server/src/sse.ts
,
packages/server/tests/sse.test.ts
,
packages/server/src/watch.ts
,
packages/server/tests/watch-gaps.test.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
site-architecture.md
§9.2 |
packages/compiler/src/site/image-transform.ts
,
packages/compiler/src/site/img-loading.ts
,
packages/compiler/tests/img-loading.test.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
spec.md
§8.7,
spec.md
§16.6 |
packages/compiler/src/shadow.ts
,
packages/compiler/src/targets/compile-element.ts
,
packages/compiler/tests/shadow-dom.test.ts |
HTML Standard
WHATWG HTML |
WHATWG | Subset |
ui.md
§3,
ui.md
§6 |
packages/ui/tests/popover.test.ts
,
packages/ui/tests/popover-shim.test.ts
,
packages/ui/tests/dialog.test.ts
,
packages/ui/tests/tooltip.test.ts
,
packages/ui/tests/menu.test.ts |
URL Pattern Standard
WHATWG URLPattern |
WHATWG | Subset |
site-architecture.md
§11.1 |
packages/compiler/src/site/site-build.ts |
Tracked gaps
Near
gap:ui-aria— Accessible Rich Internet Applications (WAI-ARIA) 1.2 (WAI-ARIA,Subset) inui.md§5,ui.md§6,ui.md§7 — Built and exercised: menu (rovingtabindex, typeahead, submenus as child popovers), toolbar and radiogroup (jx-action-group'sselects), tablist (jx-tabs, roving focus,aria-selected,aria-controls), dialog (jx-dialog, a native modal), switch , separator , progressbar (jx-spinner, an emptyvaluewriting noaria-valuenow), tooltip , and tree (jx-treeandjx-tree-item: the roving caret,aria-level,aria-expanded,aria-multiselectable, andaria-posinset/aria-setsizedescribing the FULL set while the tree draws a windowed slice of it).conformance.test.tsruns an accessibility lint over every kit document, so a new element joins the claim rather than sitting outside it. listbox (jx-listboxandjx-option, with the active descendant and the selection as one row) and the editable combobox with list autocomplete (jx-combobox) are built as well. Absent: the select-only combobox kind , which is a native<select>here (§5.1). Three deviations are normative and are the reason this is notAdoptedon the menu pattern alone: a menu row that owns a submenu still runs its own command (§5.1), a tree's arrows do not wrap where the menu's and the tablist's do (§5.5), and ajx-listboxhas no tab stop of its own even when nothing else on the surface owns its keyboard — the slash menu's caret is in the canvas, and a focusable list would take it (§5.3).gap:wcag-conformance— Web Content Accessibility Guidelines (WCAG) 2.2 (WCAG 2.2,Subset) instudio-ui-guidelines.md§1.1,studio-ui-guidelines.md§8.2,studio-ui-guidelines.md§8.7 — No level is claimed, and conformance is not tested end to end — that needs a browser. Four criteria are met deliberately and checked: SC 4.1.3 (Status Messages) — one live region, called fromnotify()itself, so a failure that lands in the Problems panel is still announced; SC 2.5.7 (Dragging Movements) — cut/paste is the stated alternative to every drag; SC 1.4.3/1.4.11 (Contrast) — a required-pairs table gated incheck-styles.ts, with one entry on the debt list; SC 1.4.1 — aforced-colorsblock redraws the selection and focus affordances Windows High Contrast deletes withbox-shadow.gap:ui-wcag— Web Content Accessibility Guidelines (WCAG) 2.2 (WCAG 2.2,Subset) inui.md§4,ui.md§5,ui.md§7 — No level is claimed, and conformance is not tested end to end — that needs a browser. Seven criteria are met deliberately, an eighth is met for the control height, and each has a test: SC 2.4.7 (Focus Visible) — every element that renders a focusable control declares a:focus-visiblerule on the one--jx-focus-ringtoken, held byconformance.test.ts; SC 2.1.1 (Keyboard) — every composite's keyboard contract is exercised (menu,jx-tree,toolbar,tabs,split,combobox,color-area); SC 2.5.7 (Dragging Movements) — the splitter's arrows and Enter collapse (split.test.ts) and the colour area's arrow keys (color-area.test.ts) are the non-drag alternative; SC 2.3.3 (Animation from Interactions) — the theme zeroes every--jx-dur-*underprefers-reduced-motion: reduce(theme.test.ts); SC 2.2.1 (Timing Adjustable) — the toast's clock pauses on pointer and on focus and resumes with what was left (jx-toast.test.ts); SC 1.4.13 (Content on Hover or Focus) — the tooltip is hoverable, dismissible and persistent (tooltip.test.ts); SC 1.4.3/1.4.11 (Contrast) — Studio's required pairs over the kit's tokens are gated per scheme incheck-styles.ts, which is the one criterion whose evidence lives outside this package. SC 2.5.8 (Target Size, Minimum) for the control height and forsm— every--jx-control-h-sized control is at least 24px at every density, and everysmbutton and checkbox accepts the pointer over the same token through a::beforehit area inset past its 20px picture, both held byconformance.test.tsand the arithmetic bytarget-size.test.ts(compact used to draw 20px rows, which is why this row once claimed nothing for the criterion; §4.3 records the floor, what compact buys instead, and the hit-area technique);jx-textfield's clear button andjx-combobox's toggle carry the same hit area at every field size;jx-number-field's steppers fall under the criterion's Equivalent exception atmdandlg, where the input beside them takes the same step at the floor; a small number field is the non-claim below, its input included. What is not claimed: SC 2.5.8 for a small FIELD — ansmjx-textfield,jx-number-field,jx-selectorjx-comboboxdraws its native input 4px under the floor and a replaced element renders no pseudo-element to extend it, so a host owes those the criterion itself; the members of ajx-action-groupon its packed axis — 22px each but the last at the default 2px gap, where the later sibling's extension paints over the earlier one's and the overlap rule gives it the strip, and the drawn width in a compact group, where the boxes touch and the sheet zeroes the extension rather than let it cover the neighbour (ajx-toolbar's 4px gap is where two extended neighbours abut, and there the claim holds); andjx-split's 5px handle, whose 24px strip would cover the panes it divides (§4.3 records the trade-off); and SC 4.1.2 beyond what the accessibility lint refuses (an interactive node with no name). The busy-indicator exemption §5.2 records is deliberate and is stated there.gap:ui-html-overlays— HTML Standard (WHATWG HTML,Subset) inui.md§3,ui.md§6 — Built and exercised:popoverinauto(jx-menu,jx-popover) andhint(jx-tooltip) with light dismissal, Escape one level and Tab-hides-root;<dialog>opened withshowModal(), so inertness, focus restoration andclosedbyare the platform's; invoker commands , including the custom--showa host aims at ajx-dialog;autofocus, forwarded byjx-buttonto its inner control; andToggleEvent, which is what a dialog'sopenis mirrored from rather than written. Absent:popover="manual", which no element needs yet, andinertwritten by the kit itself — a modal<dialog>supplies it, and nothing else here claims it. Form association throughElementInternalsis not offered and is not a gap: §3.2 records it as a decision, so a host restoring a default writesvalue.
Untiered
These bind a section carrying no status marker, so no tier can be derived.
gap:apg-coverage— Accessible Rich Internet Applications (WAI-ARIA) 1.2 (WAI-ARIA,Subset) instudio-ui-guidelines.md§6,studio-ui-guidelines.md§8,studio-ui-guidelines.md§12 — The tree, menu, toolbar and radiogroup patterns are implemented with their full state and keyboard contracts, and two more now are: the combobox (Quick Access carriesaria-controls,aria-activedescendantand anaria-expandedthat is false when nothing matched — it was the literal stringtrue) and the dialog (role,aria-modaland a name off the wrapper's headline). Every tab strip in the shell carries realtablist/tab/tabpanelsemantics (jx-tabs), the PANE strip included. Both trees arejx-treenow , which is the same correction one level down: the Outline and the Files tree each wrote outrole="tree",role="treeitem",aria-level,aria-posinset,aria-setsize, a rovingtabindexand their own arrow-key cases, and nothing held the two copies in agreement — ← climbed to a parent in one and only closed a directory in the other, Home and End existed in one and not the other, and neither had typeahead. The element owns all of it and both trees gained the half they were missing; what the panels keep is the half a windowed tree cannot delegate, because the DOM holds a slice: the counts describe the full set, a caret move past the drawn rows comes back asmove, and ← climbs to the parent the ROW MODEL recorded rather than to the nearest painted row at a shallower level. It was the last one out, because a Studio tab chip carries a pin toggle, an origin marker and a draft pill andjx-tabaccepted no slotted content; the gap was one<slot>in the kit's element rather than a missing keyboard contract, and closing it took three (ui.md§5.4, slotsicon,statusandactions). The chip keeps all three marks and is atabinside atablist: one stop in the tab order with a roving caret inside it, arrows with wrap, Home and End, and Delete closing a document — a path the×had never had, and the reason this gap was worth closing in the element rather than around it. The Tabulator data grid is virtualized — hand-authoringrole="grid"over rows that do not exist in the DOM would make it worse, not better. One deviation from the menu pattern is deliberate and is recorded in §8.4: the rail foot's Settings menu gives a row that owns a submenu an action of its own , which the APG does not describe. It is the requirement rather than an oversight — the heading opens the surface and the submenu deep-links a section — and it is why these menus were hand-rolled before the kit had one: Spectrum's stockslot="submenu"forbade it outright. Nothing is unreachable: Enter runs the row, ArrowRight reaches every child,aria-haspopupannounces the popup, and every child has a second door.
Declined
| Standard | Where | Because |
|---|---|---|
Source Map Format Specification
ECMA-426 |
server.md
§5 |
the only mapping the code services perform is subtracting one synthetic header line and a fixed byte offset from each diagnostic, which is exact, total, and four lines of arithmetic. A source map would encode that constant as a generated artefact the snippet does not otherwise need, and every consumer would have to learn to read it. The snippets are function bodies edited in place, never shipped, so nothing downstream has a debugger to point at them. |
JavaScript Object Notation (JSON) Patch
RFC 6902 |
extensions.md
§8.3 |
lower
rewrites a section value into the document tree as a whole-value transform, and a patch document would describe the same result less legibly while adding a format an extension author would have to learn. The capability signature is the contract instead. |
JavaScript Object Notation (JSON) Text Sequences
RFC 7464 |
server.md
§4.1 |
the only advantage over the
application/x-ndjson
already in use is that a record containing a raw newline cannot break framing, and the producer is always
JSON.stringify
, which escapes newlines — so the framing is unambiguous already. Adopting it would break every client and test and make a dev-server debug stream ungreppable. The defect that looked like a framing problem was not one: the reader dropped unparseable lines in silence, so an import finished looking clean while the user never learned what it skipped. They are counted and reported now (
packages/studio/src/services/import-client.ts
). |
JSON Web Token (JWT)
RFC 7519 |
desktop.md
§3.6 |
Jx issues and validates no JWTs. The desktop holds an opaque provider access token, and the loopback server's own gate is a random per-server token compared in constant time. The strongest posture against the JWT BCP's failure modes —
alg: none
, unverified
kid
, confused audiences — is not having a JWT, and adopting one to be conformant would create every risk it then manages. |
Compression Extensions for WebSocket
RFC 7692 |
collab.md
§2 |
lib0-encoded Yjs updates are near-incompressible, the dominant frame volume is awareness cursors whose payload is smaller than a deflate block header, both transports are loopback or already compressed at the edge, and Bun allocates a zlib context per socket — a real cost for a server whose purpose is many concurrent sockets. |
OAuth 2.0 Authorization Server Metadata
RFC 8414 |
desktop.md
§3.6 |
the flow this would configure now exists, and the provider it talks to publishes no metadata document at either well-known URI. Discovery would be a request that always 404s, followed by the hard-coded endpoints below it. A second provider that does publish one is what would make this worth having. |
Adoption backlog
Standards whose owning spec section does not exist yet, so no row can bind them. Each names the spec that will own it; when that section is written the entry becomes a tracked gap.
| Standard | Target | Why not yet |
|---|---|---|
CSS Containment Module Level 3
CSS Containment 3 |
spec.md
§9 |
$media
is viewport-only. Container queries would need a named-container model in the style object. |
Web Authentication Level 3
WebAuthn Level 3 |
desktop.md
§10 |
Passkeys need a registered relying-party id and a recovery story, neither of which is designed. |
Standards catalog
Every identifier a specification may cite, with the canonical URL the citation must use.
| Id | Body | Title | Canonical URL |
|---|---|---|---|
ATAG 2.0 |
W3C | Authoring Tool Accessibility Guidelines (ATAG) 2.0 | https://www.w3.org/TR/ATAG20/ |
Accessible Name and Description Computation |
W3C | Accessible Name and Description Computation 1.2 | https://www.w3.org/TR/accname-1.2/ |
BCP 14 |
IETF | Key words for use in RFCs to Indicate Requirement Levels | https://www.rfc-editor.org/info/bcp14 |
BCP 47 |
IETF | Tags for Identifying Languages | https://www.rfc-editor.org/info/bcp47 |
CSP Level 3 |
W3C | Content Security Policy Level 3 | https://www.w3.org/TR/CSP3/ |
CSS Anchor Positioning |
W3C | CSS Anchor Positioning Module Level 1 | https://www.w3.org/TR/css-anchor-position-1/ |
CSS Animations |
W3C | CSS Animations Level 1 | https://www.w3.org/TR/css-animations-1/ |
CSS Cascade Layers |
W3C | CSS Cascading and Inheritance Level 5 | https://www.w3.org/TR/css-cascade-5/ |
CSS Color 4 |
W3C | CSS Color Module Level 4 | https://www.w3.org/TR/css-color-4/ |
CSS Color 5 |
W3C | CSS Color Module Level 5 | https://www.w3.org/TR/css-color-5/ |
CSS Containment 3 |
W3C | CSS Containment Module Level 3 | https://www.w3.org/TR/css-contain-3/ |
CSS Custom Properties for Cascading Variables |
W3C | CSS Custom Properties for Cascading Variables Module Level 1 | https://www.w3.org/TR/css-variables-1/ |
CSS Nesting |
W3C | CSS Nesting Module | https://www.w3.org/TR/css-nesting-1/ |
CSS Properties and Values API |
W3C | CSS Properties and Values API Level 1 | https://www.w3.org/TR/css-properties-values-api-1/ |
CSS Scoping |
W3C | CSS Scoping Module Level 1 | https://www.w3.org/TR/css-scoping-1/ |
CSS Shadow Parts |
W3C | CSS Shadow Parts | https://www.w3.org/TR/css-shadow-parts-1/ |
CSS Transitions 2 |
W3C | CSS Transitions Level 2 | https://www.w3.org/TR/css-transitions-2/ |
CSSOM |
W3C | CSS Object Model (CSSOM) | https://www.w3.org/TR/cssom-1/ |
CommonMark |
Other | CommonMark Spec | https://spec.commonmark.org/current/ |
ECMA-262 |
Ecma | ECMAScript Language Specification | https://ecma-international.org/publications-and-standards/standards/ecma-262/ |
ECMA-402 |
Ecma | ECMAScript Internationalization API Specification | https://ecma-international.org/publications-and-standards/standards/ecma-402/ |
ECMA-404 |
Ecma | The JSON Data Interchange Syntax | https://ecma-international.org/publications-and-standards/standards/ecma-404/ |
ECMA-426 |
Ecma | Source Map Format Specification | https://ecma-international.org/publications-and-standards/standards/ecma-426/ |
Fetch Metadata Request Headers |
W3C | Fetch Metadata Request Headers | https://www.w3.org/TR/fetch-metadata/ |
GFM |
Other | GitHub Flavored Markdown Spec | https://github.github.com/gfm/ |
Gitignore |
Git | gitignore(5) — Specifies intentionally untracked files to ignore | https://git-scm.com/docs/gitignore |
IANA IPv4 Special-Purpose Address Registry |
IANA | IANA IPv4 Special-Purpose Address Registry | https://www.iana.org/assignments/iana-ipv4-special-registry |
IANA IPv6 Special-Purpose Address Registry |
IANA | IANA IPv6 Special-Purpose Address Registry | https://www.iana.org/assignments/iana-ipv6-special-registry |
JSON Feed 1.1 |
Other | JSON Feed Version 1.1 | https://www.jsonfeed.org/version/1.1/ |
JSON Schema 2020-12 |
JSON Schema | JSON Schema, draft 2020-12 | https://json-schema.org/draft/2020-12/schema |
JSON-LD 1.1 |
W3C | JSON-LD 1.1 | https://www.w3.org/TR/json-ld11/ |
Media Queries 5 |
W3C | Media Queries Level 5 | https://www.w3.org/TR/mediaqueries-5/ |
Permissions Policy |
W3C | Permissions Policy | https://www.w3.org/TR/permissions-policy/ |
RFC 3339 |
IETF | Date and Time on the Internet: Timestamps | https://www.rfc-editor.org/rfc/rfc3339 |
RFC 3986 |
IETF | Uniform Resource Identifier (URI): Generic Syntax | https://www.rfc-editor.org/rfc/rfc3986 |
RFC 4180 |
IETF | Common Format and MIME Type for CSV Files | https://www.rfc-editor.org/rfc/rfc4180 |
RFC 4287 |
IETF | The Atom Syndication Format | https://www.rfc-editor.org/rfc/rfc4287 |
RFC 4647 |
IETF | Matching of Language Tags | https://www.rfc-editor.org/rfc/rfc4647 |
RFC 5005 |
IETF | Feed Paging and Archiving | https://www.rfc-editor.org/rfc/rfc5005 |
RFC 6265 |
IETF | HTTP State Management Mechanism | https://www.rfc-editor.org/rfc/rfc6265 |
RFC 6455 |
IETF | The WebSocket Protocol | https://www.rfc-editor.org/rfc/rfc6455 |
RFC 6797 |
IETF | HTTP Strict Transport Security (HSTS) | https://www.rfc-editor.org/rfc/rfc6797 |
RFC 6838 |
IETF | Media Type Specifications and Registration Procedures | https://www.rfc-editor.org/rfc/rfc6838 |
RFC 6901 |
IETF | JavaScript Object Notation (JSON) Pointer | https://www.rfc-editor.org/rfc/rfc6901 |
RFC 6902 |
IETF | JavaScript Object Notation (JSON) Patch | https://www.rfc-editor.org/rfc/rfc6902 |
RFC 7464 |
IETF | JavaScript Object Notation (JSON) Text Sequences | https://www.rfc-editor.org/rfc/rfc7464 |
RFC 7493 |
IETF | The I-JSON Message Format | https://www.rfc-editor.org/rfc/rfc7493 |
RFC 7519 |
IETF | JSON Web Token (JWT) | https://www.rfc-editor.org/rfc/rfc7519 |
RFC 7636 |
IETF | Proof Key for Code Exchange by OAuth Public Clients | https://www.rfc-editor.org/rfc/rfc7636 |
RFC 7692 |
IETF | Compression Extensions for WebSocket | https://www.rfc-editor.org/rfc/rfc7692 |
RFC 7763 |
IETF | The text/markdown Media Type | https://www.rfc-editor.org/rfc/rfc7763 |
RFC 7764 |
IETF | Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations | https://www.rfc-editor.org/rfc/rfc7764 |
RFC 8246 |
IETF | HTTP Immutable Responses | https://www.rfc-editor.org/rfc/rfc8246 |
RFC 8252 |
IETF | OAuth 2.0 for Native Apps | https://www.rfc-editor.org/rfc/rfc8252 |
RFC 8288 |
IETF | Web Linking | https://www.rfc-editor.org/rfc/rfc8288 |
RFC 8414 |
IETF | OAuth 2.0 Authorization Server Metadata | https://www.rfc-editor.org/rfc/rfc8414 |
RFC 8615 |
IETF | Well-Known Uniform Resource Identifiers | https://www.rfc-editor.org/rfc/rfc8615 |
RFC 9110 |
IETF | HTTP Semantics | https://www.rfc-editor.org/rfc/rfc9110 |
RFC 9111 |
IETF | HTTP Caching | https://www.rfc-editor.org/rfc/rfc9111 |
RFC 9116 |
IETF | A File Format to Aid in Security Vulnerability Disclosure | https://www.rfc-editor.org/rfc/rfc9116 |
RFC 9309 |
IETF | Robots Exclusion Protocol | https://www.rfc-editor.org/rfc/rfc9309 |
RFC 9457 |
IETF | Problem Details for HTTP APIs | https://www.rfc-editor.org/rfc/rfc9457 |
RFC 9512 |
IETF | YAML Media Type | https://www.rfc-editor.org/rfc/rfc9512 |
Referrer Policy |
W3C | Referrer Policy | https://www.w3.org/TR/referrer-policy/ |
Service Workers |
W3C | Service Workers | https://www.w3.org/TR/service-workers/ |
Sitemaps 0.9 |
Other | Sitemaps XML format | https://www.sitemaps.org/protocol.html |
Subresource Integrity |
W3C | Subresource Integrity | https://www.w3.org/TR/SRI/ |
Trusted Types |
W3C | Trusted Types | https://www.w3.org/TR/trusted-types/ |
UAX #15 |
Unicode | Unicode Normalization Forms | https://www.unicode.org/reports/tr15/ |
UAX #29 |
Unicode | Unicode Text Segmentation | https://www.unicode.org/reports/tr29/ |
UAX #31 |
Unicode | Unicode Identifiers and Syntax | https://www.unicode.org/reports/tr31/ |
UAX #9 |
Unicode | Unicode Bidirectional Algorithm | https://www.unicode.org/reports/tr9/ |
UTS #35 |
Unicode | Unicode Locale Data Markup Language (LDML) | https://www.unicode.org/reports/tr35/ |
WAI-ARIA |
W3C | Accessible Rich Internet Applications (WAI-ARIA) 1.2 | https://www.w3.org/TR/wai-aria-1.2/ |
WCAG 2.2 |
W3C | Web Content Accessibility Guidelines (WCAG) 2.2 | https://www.w3.org/TR/WCAG22/ |
WHATWG DOM |
WHATWG | DOM Standard | https://dom.spec.whatwg.org/ |
WHATWG Fetch |
WHATWG | Fetch Standard | https://fetch.spec.whatwg.org/ |
WHATWG HTML |
WHATWG | HTML Standard | https://html.spec.whatwg.org/ |
WHATWG URLPattern |
WHATWG | URL Pattern Standard | https://urlpattern.spec.whatwg.org/ |
Web Application Manifest |
W3C | Web Application Manifest | https://www.w3.org/TR/appmanifest/ |
WebAuthn Level 3 |
W3C | Web Authentication Level 3 | https://www.w3.org/TR/webauthn-3/ |
WebDriver BiDi |
W3C | WebDriver BiDi | https://www.w3.org/TR/webdriver-bidi/ |