Repository navigation
Conversation
eXpl0it3r
force-pushed
the
spec-compliance
branch
from
November 12, 2026 20:23
69bee4f to
881aea6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Before fixing and extending more of the 2.0 rendering, I wanted a complete picture of what HTML Renderer actually implements, instead of relying on comments, of which quite a few turned out to be wrong. This PR adds that picture as spec compliance tracking: every section of CSS 2.1, of 79 CSS modules (the CSS Snapshot plus paged media, tables, overflow, generated content and GCPM) and of the HTML Living Standard is listed in
Spec/<spec>.yml, with a status and, where something is missing, the gaps. Subsections of ann/asection are covered by it and only listed when they have a status of their own.At this point in time that's 3'350 sections, none of them left unreviewed:
How it fits together:
Spec/README.mdexplains the statuses and conventions[Spec("css21", "box.html#collapsing-margins")]links a test to the section it verifies, a supported or partial section needs at least one[Ignore("Gap, see Spec/css21.yml")]test that fails once the ignore is removedSpecComplianceTestsfails when the manifests and tests disagree, e.g. an unknown anchor or a partial section without gapsSource/Tools/HtmlRenderer.SpecComplianceruns the samecheckand writes thereport, CI puts the overview table into the summary of the Windows .NET 8 job and uploads the full report as artifactProduction code only changes in comments, they now cite the section and say what the code can't, instead of retelling the spec. The bugs the review found are fixed separately in #274 to #285.
Every spec area is its own commit, so going through it commit by commit is a lot easier than the full diff. As such I'll land this by fast-forwarding master, so the commits stay as they are.
How to test this PR?
CI should succeed. Locally,
dotnet run --project Source/Tools/HtmlRenderer.SpecCompliance -- checkvalidates the manifests and-- report --output report.mdwrites the report.