Mentored by Richard Ladner, University of Washington
ContextLabeler
An NVDA screen reader add-on that labels unlabeled UI elements for blind users. An LLM (Claude Haiku) proposes each label, and SPARQL ASK queries check it against an RDF/Turtle ontology before NVDA speaks it. Speech gives the confirmed category first so users can judge how far to trust the label.
90.9% category accuracy with zero ontology-invalid outputs. With the ontology gate removed, 83.6% of outputs failed.
Method and results
- 0.82 s median latency, 1.48 s at p95.
- A fingerprinted label store kept labels 98.4% consistent across 550 calls.
- Found a soundness and completeness trade-off in ontology gating through a VS Code tree-item failure case.
- App-specific ontologies extend the vocabulary from 17 to 22 categories with no code change.
Python, NVDA, Claude API, RDF/Turtle, SPARQL, RDFLib Code for ContextLabeler