---
title: "onehtml docs"
url: https://recursiveai.org/onehtml/docs/
description: "Everything about onehtml: getting started, parsing and editing, CSS, the accessibility tree, the WCAG checker and its exports, how it is tested, and the…"
version: "1.0.0"
---

# onehtml docs

Everything about onehtml: getting started, parsing and editing, CSS, the accessibility tree, the WCAG checker and its exports, how it is tested, and the cookbook.

## Start

- [Getting started](https://recursiveai.org/onehtml/docs/getting-started/index.md): Install onehtml for .NET 10, parse an HTML page the way a browser does, query it with CSS selectors, make an edit that leaves every other byte alone…

## Parsing and editing

- [Editing HTML](https://recursiveai.org/onehtml/docs/editing/index.md): Normative behaviour of Document.Apply and DocumentEditor in RecursiveAI.OneHtml. A port must reproduce it from this text. The saved-edit JSON and replay…
- [Edit format](https://recursiveai.org/onehtml/docs/edit-format/index.md): The saved form of edits: a JSON envelope that names what to change durably enough to replay on another copy of the page or stylesheet, plus the replay…
- [Selectors](https://recursiveai.org/onehtml/docs/selectors/index.md): Normative behaviour of RecursiveAI.OneHtml.Selectors and the Node query members. The grammar and matching rules are those of Selectors Level 4 (with the…
- [Locators and fingerprints](https://recursiveai.org/onehtml/docs/locators/index.md): Normative behaviour of RecursiveAI.OneHtml.Locators, written so another language can reproduce it byte for byte.
- [Reading view](https://recursiveai.org/onehtml/docs/reading-view/index.md): ReadingView.Create(tree) and NavigationLists.Create(tree) (also tree.CreateReadingView() and tree.CreateNavigationLists()) in…

## CSS

- [CSS parsing](https://recursiveai.org/onehtml/docs/css-syntax/index.md): Normative behaviour of RecursiveAI.OneHtml.Css, written so another language can reproduce it. The algorithms are those of CSS Syntax Module Level 3…
- [CSS values](https://recursiveai.org/onehtml/docs/css-values/index.md): Normative behaviour of the value layer of RecursiveAI.OneHtml.Css, written so another language can reproduce it. It sits on the tokens and component…
- [The cascade and computed styles](https://recursiveai.org/onehtml/docs/cascade/index.md): Normative behaviour of RecursiveAI.OneHtml.Css.DocumentStyles (namespace RecursiveAI.OneHtml.Css), written so another language can reproduce it. The…

## Accessibility

- [The accessibility tree](https://recursiveai.org/onehtml/docs/accessibility-tree/index.md): AccessibilityTree.Build(document, styles, context?, options?, cancellationToken) in RecursiveAI.OneHtml.Accessibility computes the objects a browser…
- [Roles](https://recursiveai.org/onehtml/docs/accessibility-roles/index.md): RecursiveAI.OneHtml.Accessibility computes the role of every element from markup alone, before any style is known. This document is normative for that…
- [Chromium role profile](https://recursiveai.org/onehtml/docs/accessibility-chromium-profile/index.md): Where WAI-ARIA 1.2, HTML-AAM and Core-AAM leave a choice, the accessibility tree follows what Chromium exposes. This file lists every such choice made in…
- [Rendered facts](https://recursiveai.org/onehtml/docs/rendered-facts/index.md): RecursiveAI.OneHtml.Accessibility.Rendered holds what a browser's layout engine said about a page, keyed by the nodes of a OneHtml document. The library…

## Checking pages

- [The checker](https://recursiveai.org/onehtml/docs/checker/index.md): RecursiveAI.OneHtml.Accessibility.Validation runs accessibility rules over a document and its accessibility tree and returns labelled results. This page…
- [Results and exports](https://recursiveai.org/onehtml/docs/results/index.md): A CheckReport (see checker.md) holds RuleResults. This page defines the result model and the two JSON exports. Both exports are deterministic: the same…
- [SARIF export](https://recursiveai.org/onehtml/docs/sarif/index.md): ToSarifJson (an extension on CheckReport, in SarifExport) writes the report as SARIF 2.1.0, the OASIS Static Analysis Results Interchange Format (Errata…
- [Rule catalogue](https://recursiveai.org/onehtml/docs/catalogue/index.md): The Validation package ships reference data about the standards its rules check against, and a few types to hang rule implementations on. This page lists…
- [ACT rule coverage](https://recursiveai.org/onehtml/docs/act-coverage/index.md): Generated by ActCoverageTests; do not edit by hand. To refresh it after a rule or an expectation changes, run the Validation tests with…

## How it is tested

- [Coverage matrix](https://recursiveai.org/onehtml/docs/coverage/index.md): Generated by CoverageMatrix.ToMarkdown(); do not edit by hand. To refresh it after the data changes, run the Validation tests with ONEHTML_UPDATE_DOCS=1.…
- [AngleSharp differential](https://recursiveai.org/onehtml/docs/anglesharp-differential/index.md): How our trees compare with AngleSharp's on a corpus of real pages, and why each remaining difference is ours being right. AngleSharp is used as a black…
- [Chrome accessibility-tree differential](https://recursiveai.org/onehtml/docs/chrome-ax-differential/index.md): OneHtml.Differential ax compares our accessibility tree with the one Chrome returns from Accessibility.getFullAXTree, node by node, for pages captured by…
- [axe-core differential](https://recursiveai.org/onehtml/docs/axe-differential/index.md): OneHtml.Differential axe compares what the checker (RecursiveAI.OneHtml.Accessibility.Validation) concludes about a page with what axe-core 4.14.0…

## Reference

- [Changelog](https://recursiveai.org/onehtml/docs/changelog/index.md): All notable changes are listed here. The format follows Keep a Changelog and versions follow Semantic Versioning.

## Cookbook

- [All recipes](https://recursiveai.org/onehtml/cookbook/index.md): 15 short, task-first recipes with complete code.
