Accessibility (axe)

axe-core 4.13.0 in Chromium 153.0.8010.12, with the rules this site's own tests run, on each key page in light, dark and high contrast, on 2026-10-08 at 16:21 UTC. The bar is no critical or serious violation.

axe results for each key page in each theme
Page LightDarkHigh contrast
/ No critical or serious; 17 moderate, 4 minor No critical or serious; 17 moderate, 4 minor No critical or serious; 17 moderate, 4 minor
/start No critical or serious No critical or serious No critical or serious
/faq No critical or serious No critical or serious No critical or serious
/license No critical or serious No critical or serious No critical or serious
/about No critical or serious No critical or serious No critical or serious
/system No critical or serious; 3 moderate, 0 minor No critical or serious; 3 moderate, 0 minor No critical or serious; 3 moderate, 0 minor
/objects/subscription No critical or serious; 3 moderate, 1 minor No critical or serious; 3 moderate, 1 minor No critical or serious; 3 moderate, 1 minor
/components/button No critical or serious No critical or serious No critical or serious
/charts/bar No critical or serious No critical or serious No critical or serious
/foundations/tokens No critical or serious No critical or serious No critical or serious
/brands No critical or serious; 4 moderate, 0 minor No critical or serious; 4 moderate, 0 minor No critical or serious; 4 moderate, 0 minor
/demos/harbor No critical or serious; 3 moderate, 0 minor No critical or serious; 3 moderate, 0 minor No critical or serious; 3 moderate, 0 minor
/receipt No critical or serious No critical or serious No critical or serious

Every page and every generated screen in its frame, each in every theme, on commit 9e542d7, on 2026-10-08 at 16:00 UTC: 1326 checks passed, 0 failed and 0 were skipped.

Performance and accessibility (Lighthouse)

Lighthouse 13.5.0, its phone run with simulated throttling, against the site served on the machine that ran it, on 2026-10-08 at 16:25 UTC. The bar for performance and accessibility is 0.90.

The local server sent the home page without compression, even when the request accepted it. These scores include that cost.

The machine's load average was 33.3 on 8 cores as Lighthouse began.

Performance was below the bar on 13 of the 13 key pages.

Lighthouse scores for each key page
Page Performance Accessibility Best practices SEO
/ 0.68, under the bar 1.00 1.00 1.00
/start 0.78, under the bar 1.00 1.00 1.00
/faq 0.80, under the bar 1.00 1.00 1.00
/license 0.73, under the bar 1.00 1.00 1.00
/about 0.77, under the bar 1.00 1.00 1.00
/system 0.73, under the bar 0.96 1.00 1.00
/objects/subscription 0.72, under the bar 0.96 1.00 1.00
/components/button 0.88, under the bar 1.00 1.00 1.00
/charts/bar 0.74, under the bar 1.00 1.00 1.00
/foundations/tokens 0.59, under the bar 1.00 1.00 1.00
/brands 0.84, under the bar 1.00 1.00 1.00
/demos/harbor 0.63, under the bar 1.00 1.00 1.00
/receipt 0.77, under the bar 1.00 1.00 1.00

Copy check

It runs in every build, and the build stops on a problem. On 2026-10-08 at 16:21 UTC it read every page in the site's shell, 248 of them, as a visitor gets them, and found 0 problems. These were the rules for that run:

  • an em dash or an en dash, anywhere, titles and alt text included
  • Foundry without OODS before it
  • the product's old internal name, anywhere on a page, in quotes and in identifiers too, except where the changelog the pinned package ships names the identifiers its code generation used to emit
  • the phrases the positioning brief rules out, such as local-first and AI-powered
  • certif in a sentence that names a screen, page, app, component or HTML
  • telemetry in a sentence that isn't about trace export
  • System Systems outside the footer and the License page
  • not yet and coming soon
  • the first and the only
  • the claims product truth rules out that it has words for: N1, N2, N3, N4, N5, N6, N7, N8, N10, N11, N12, N13, N14, N15, N16, N17, N18, N19, N20, N21, N23, N24, N25, N26, N27, N28, N29, N32, N33, N36, N38, N39, N40, N41, N50, N51, N52, N56, N60

It leaves OODS Foundry's own output to OODS Foundry: what the site shows as written, marked by where it comes from, and code. These are the sources, with how many elements each marks:

  • BRANDS.md: 10
  • CHANGELOG.md: 24
  • COMPONENTS.md, as the shadcn run ran it: 1
  • COMPONENTS.md: 7
  • GENERATED-APPS.md: 5
  • IMPORTING-OBJECTS.md: 11
  • OBJECTS-AND-TRAITS.md: 9
  • QUICKSTART.md: 5
  • README.md: 1
  • README.md: Settings, Where things go: 3
  • artifact_certify: 30
  • brand_create validate: 10
  • brand_create's template: 1355
  • catalog_list: 2806
  • code_generate's receipt: 38
  • code_generate: 244
  • design_compose, counted: 11
  • design_compose: 96
  • fidelity_preview: 11
  • object_import report: 3
  • object_import show: 12
  • pipeline/inputs/chart-samples.json, the input the charts run recorded by its hash: 8
  • the component contract: 658
  • the contract report: 4
  • the documented example, rendered: 228
  • the object file, counted: 11
  • the object file: 836
  • the recorded call, its size: 21
  • the recorded calls, counted: 122
  • the shadcn run's commands: 1
  • the shadcn run's hand edit: 1
  • the tool's description: 105
  • the tool's schema: 446
  • the trait file: 941
  • this site's components.json: 1
  • this site's privacy measurements: 1
  • this site's receipt run: 142
  • viz_render: 221

Quoted as written, where the shipped words give the product's name without OODS: /guides/components (COMPONENTS.md).

Numbers check

It runs in every build too. Every number in the site's copy comes from one data file, site-facts.json, and must show its fact's value there. On 2026-10-08 at 16:21 UTC the same 248 pages showed 113 numbers from it, and 0 numbers it doesn't hold. Versions, dates, hashes and codes aren't counts, and aren't read.

Not checked

  • Screen-reader use by a person, and keyboard use by a person.
  • Widths other than the one each check ran at: axe at Playwright's desktop size, Lighthouse at its phone size.
  • Browsers other than Chromium.
  • Lighthouse on a real network or a real phone: it ran on this machine, against the site served locally, with simulated throttling.
  • Meaning: the copy check reads words. A claim worded in a way none of its patterns names passes it.
  • Claims in product truth §8 that no word list catches: N9, N22, N30, N31, N35, N37, N42, N53, N54, N55, N57, N58, N59, N61, N62, N63, N64, N65, N66.
  • OODS Foundry's own words, shown as written (its replies, descriptions, guides, warnings and generated screens), against the voice rules: the copy check reads them only for the product's old internal name.
  • Numbers inside OODS Foundry's output, charts and images: the numbers check reads the site's own copy.
  • The Markdown twins and llms.txt: they are made from the checked pages and the data file, and not read again.

How it was made

This site's repository is private. On a clean checkout of it, these commands made this receipt: the full sweep first, then the receipt, which reads the sweep's report.

npm ci
npm run --silent test:a11y -- --reporter=json > sweep.json
npm run receipt -- --a11y-report sweep.json

The tools it ran with:

  • Node.js v24.6.0
  • Chromium 153.0.8010.12
  • Playwright 1.63.0