Reference

FAQ

Scope, limits, and where odflens fits next to the tools you already use.

Questions

Does it need LibreOffice or Java?

No. odflens is pure TypeScript: it unzips the package with fflate and parses the XML directly, so it runs headless on any machine that has Bun, including CI containers without an office suite.

Are my documents uploaded anywhere?

No. There is no network code at all. The CLI parses files locally, and the browser playground uses the same bundle in-page, so nothing leaves your machine.

Which formats are covered?

ODT (text), ODS (spreadsheet), and ODP (presentation). Kind detection reads the package mimetype and falls back to the body element. Language, title, alt-text, link-text, and remote-image checks run for all three; the heading-outline and table-header checks run for ODT, where they apply.

How does it fit into CI?

Run odflens --dir public/docs --quiet as a gate, or emit SARIF with --sarif and upload it with github/codeql-action/upload-sarif. --fail-on warning|info|none controls the exit threshold.

Why not just use AccessODF?

AccessODF is a LibreOffice GUI extension in Java, at 0.1.0 Beta, last filed in 2011. It needs a desktop suite and cannot run headless, which makes it unusable as an automated gate.

What do the exit codes mean?

0 means no findings at or above --fail-on; 1 means there are. 2 is invalid usage or a document that cannot be read or parsed as ODF (reported as an error-level ODF-000). 3 is a file or report that could not be read or written.

Limitations

Static XML analysis

odflens is static XML analysis. It does not render or convert the document, so it cannot judge visual presentation or colour contrast. It reads the ODF package directly and matches element local names, so it does not validate against the full ODF schema. Remote images are flagged, not fetched, and there is no network code. Embedded foreign content is out of scope.

How it compares

LibreOffice / AccessODF
The only ODF accessibility checker with a working release. It is a LibreOffice GUI extension written in Java, at version 0.1.0 Beta, with its last file dated 2011-11-08. It needs a desktop office suite and cannot run headless. accessodf.sourceforge.net
ODFBetter / ODF_Accessibility_Tester
Both are abandoned, with no maintained release and no way to run them in a CI pipeline.
openxml-audit
Validates OpenDocument conformance only, not accessibility. github.com/BramAlkema/openxml-audit
OOXML tooling
office-accessibility-checker, readrite, and filecap cover OOXML and XLSX rather than ODF. None of them opens an .odt, .ods, or .odp package.