About
Built by Brock Nelson, a TSVI (teacher of students with visual impairments) teaching in Folsom Cordova Unified and a student in SFSU's program. The site exists because making a single worksheet accessible takes 30 minutes or more by hand, and most teachers do not have that time.
It is built for any teacher who needs it. General education teachers get a student with low vision on their roster and a page of accommodations they were handed at a meeting. Special education teachers, paraeducators, and TSVIs get more of those students than there are hours in the week. You should not need a specialist, or a specialist's software, to hand a student a worksheet they can read.
What good large print means
- Text big enough for the student to read comfortably, usually somewhere between 28 and 48 pt.
- Every graph, grid, table, and figure kept at a size the student can actually use, instead of being swapped out for a one-line description.
- Problems never split across pages. The prompt, the equation, and the space to answer stay together.
- Room to write that matches how involved the problem is, so a three-step problem does not get one line.
- A title block on page 1 only, page numbers in the footer, and no running header taking up the top of every page.
How it's built
One design decision drives the rest: the language model decides what each part of the document is. It never decides how the page gets drawn. Layout is deterministic Python. A model that free-hands page geometry produces a document that looks plausible and measures wrong, and for this student that difference is the whole thing.
- Extract. PyMuPDF for PDF, python-docx for Word. Text plus a flag for whether the page carries graphics that need preserving.
- Classify. One Claude call maps the source into a canonical JSON document: a typed, ordered list of blocks (problem heading, equation line, coordinate grid, work lines, answer line, page break). The skill definition is sent as a cached prompt prefix, so repeat conversions pay a fraction of the input cost.
- Render. Each block dispatches to a Python helper that emits Word XML directly. Sizes, spacing, and keep-together rules are hard floors in code, not suggestions in a prompt.
- Verify. Fifteen binary checks run against the emitted XML: font size at or above the target, no table row allowed to split, non-breaking spaces inside equations, work lines reserving real height, page-1-only title block, no orphaned answer line. Below a threshold the document is re-classified once with the failures fed back, and the better of the two attempts is the one you get.
The checks exist because these are the failure modes nobody catches by eyeballing a document. An equation that breaks across a line still reads fine to a sighted adult skimming it. It stops a student cold.
What this isn't
This is large print. It is not a substitute for braille or audio for students who are totally blind. Those students need a different accommodation, not a bigger version of the print page.
Source
The skill, the rendering helpers, and the checker will be published openly. They are not up yet, and this page will link them when they are. Reach me at brock.nelson00@gmail.com if you are a TVI who wants to contribute or test.