docs/waves/wap_1_2_1_wml_scr_ledger.md
WAP 1.2.1 / WML 1.3 Static Conformance Ledger
Version: v0.3 Status: source extraction complete; mandatory implementation audit complete; WAP-215 Class C profile applied; selected nested clauses planned; optional-capability assessment pending
Purpose
This is the first line-item conformance increment for the WAP 1.2.1 / WML 1.3 compatibility target. It converts the effective WML static conformance statement into a machine-checkable obligation ledger without claiming that the project already implements or tests those obligations.
Machine-readable authority:
spec-processing/source-manifests/wap-1.2.1-wml-scr.jsonspec-processing/source-manifests/wap-1.2.1-class-conformance.jsonspec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json
Validation:
node scripts/check-wap-conformance-ledger.mjs
node scripts/check-wap-selected-normative-clauses.mjs
node scripts/wap-context-pack.mjs WML-201
pnpm wap-graph:check
The generated WML-201 projection treats this ledger as the direct 76-row
matrix authority. Every row retains its spec anchor and one conservative
evidence state: 29 direct-test-linked, 18 gap-work-item-mapped, or 29
optional-not-assessed. All 174 selected WML clauses directly map to
WML-201; the graph does not infer implementation from family ownership or
prose.
Effective source chain
The ledger applies the locked WML family precedence:
WAP-191-WMLWAP-191_102-WMLWAP-191_104-WMLWAP-191_105-WML
WAP-191_104 is the effective WML 1.3 publication containing the 75-row
section 15 statement. WAP-191_105 section 3.3 adds optional
WML-C-76 (tabindex support) to section 15.1.5.
Both extraction-source hashes are checked against the release lock and effective-spec graph. Recovered PDFs and extracted text remain outside Git under the repository’s metadata-only redistribution policy.
Result
| Actor named by the SCR | Items | Mandatory | Optional |
|---|---|---|---|
| WML user agent | 61 | 39 | 22 |
| WML encoder | 4 | 2 | 2 |
| WML document — server | 6 | 6 | 0 |
| WML document — client | 5 | 0 | 5 |
| Total | 76 | 47 | 29 |
The commonly used shorthand WML-C-01..WML-C-76 is inaccurate. The effective
identifier sequence is:
WML-C-01..WML-C-59;WML-S-60..WML-S-69;WML-C-70..WML-C-76.
The C and S prefixes distinguish client and server-side conformance
actors. They are not WAP device Class C/Class S labels.
Applying WAP-215 CCR-CLASSC-C-001 and its WML:MCF dependency produces the
selected browser scope:
| Selected Class C disposition | Rows | Meaning |
|---|---|---|
| Required | 39 | Mandatory WML user-agent rows |
| Optional, not required | 27 | 22 optional user-agent rows plus 5 optional client-document rows |
| Not applicable to client | 10 | 4 encoder rows plus 6 server-document rows |
Accounted fields
Every obligation records:
- exact SCR identifier and ordinal;
- actor, feature, referenced clause, and mandatory/optional status;
- source document and static-conformance subsection;
- dependency expression;
- strict disposition and a separate Class C applicability state;
- implementation domain and owning project layers;
- existing
RQ-*groups and additive Phase R work items; - implementation status, code symbol, exact test/command, and evidence state.
The source table contains one explicit SCR dependency:
WML-C-32 (img) depends on WML-C-54 (display of the alt attribute).
Current disposition
- Mandatory rows are
required-for-claimed-actor. - Optional rows must be explicitly declared implemented or deferred.
- Mandatory user-agent rows are
required-by-class-c-client-mcf. - Optional user-agent and client-document rows are
optional-not-required-by-class-c-client. - Encoder and server-document rows are
not-applicable-to-class-c-client. - Enhancements are never allowed to replace strict behavior.
- Every mandatory row maps to a substantive implementation work item in
addition to
R0-01. - Direct executable evidence is linked for
29/76rows. Existing thematic tests are counted only when their path, test name, command, code symbol, and limitation are reviewed against the exact SCR feature.
Mandatory implementation audit
| Assessment | Mandatory rows | Meaning |
|---|---|---|
implemented |
7 | Direct code/test evidence covers the SCR feature; profile applicability and release gates still apply |
partial |
23 | Direct behavior exists, but the cited clause has known uncovered semantics |
missing |
17 | No conforming implementation path exists; a substantive Phase R work item is attached |
The seven implemented rows are WML-C-08 (card/deck task shadowing),
WML-C-11 (newcontext initialization),
WML-C-24 (br), WML-C-30 (head), WML-C-35 (noop), WML-C-47
(template), and WML-C-53 (wml root). WML-C-21 (access) remains partial:
the element’s domain/path defaults and component-aware policy are now enforced
against the host-supplied referring URI before deck commit, but the broader
DECK-ACCESS-REQUIRED clause still includes unassessed sendreferer behavior.
Across the 39 required Class C client rows, the audit currently records 7
implemented, 23 partial, and 9 missing. This is not a compliance percentage: nested normative
clauses, optional capabilities, cross-target parity, and release evidence
still have separate gates.
The first CONF-003 slice now expands all 39 selected WML rows into 174
deduplicated, section-hash-anchored clauses. Every clause has an inherited
owner/work mapping and a direct fixture plan. Fifty-six clauses now have
reviewed direct evidence, including the WML-C-24 line-break clause, the two WML-C-17 unknown-DTD clauses,
the 11-clause WML-204 input tranche, and the completed 30-clause WML-202 root/head/access,
template, task-shadowing, card-context, and newcontext tranche; the remaining clauses stay not-assessed. The
parent-row implementation audit remains conservative.
Outside the 39 required Class C rows, WML-C-34 (meta) behavior and the
WML-C-72 mutually exclusive property identity rule now have parser tests.
Their ledger states remain optional-not-assessed until the separate
capability-declaration pass activates the broader optional-profile gate.
The 9 missing required Class C client rows are:
- context/policy:
WML-C-13,WML-C-14; - task/structure:
WML-C-20,WML-C-52; - rendering/media:
WML-C-32,WML-C-46,WML-C-49,WML-C-50,WML-C-54;
The source-wide mandatory audit additionally tracks eight missing
encoder/server requirements (WML-S-60, WML-S-61, and WML-S-64..69).
They remain in the ledger for complete WML source coverage but do not count
toward the selected Class C client profile.
This means source-level WML SCR coverage and the first mandatory code-evidence audit are complete, but implementation and release conformance are not.
Next pass
- Implement and review the 174 source-derived direct clause fixtures.
- Add cross-target and cross-layer strict-mode outcomes to the linked tests.
- Split broad Phase R work items only where a required clause lacks a deterministic acceptance lane.
- Assess the 27 optional client rows and publish the capability declaration.
- Carry the selected WAP-215 profile mapping into the remaining release families.