ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Paste a worksheet as plain text. Download one small HTML file that works with screen readers, keyboards and large text, offline, on old phones.
EducationJavaScript · HTMLGitHub @Bowen1314OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Turn a typed worksheet into one small, accessible, offline practice file for screen-reader, keyboard and low-vision learners.
Taken from the repository README
Loading the full README.
Read the full README ↗Turn a typed worksheet into one small practice file that every learner can open: with a screen reader, a keyboard, large text, offline, on an old phone.
Built during AccessED Hacks, October 17 to November 20, 2026 (all code written from October 24, 2026). No pre-existing code.
The learner: a middle-school student who is blind or has low vision and uses a screen reader (for example TalkBack on an Android phone). Their class worksheets arrive the way many worksheets travel today: a phone photo or a scanned PDF posted in the class chat group. To a screen reader, a photo of a worksheet is a single "image". There is no question to read, no option to choose and no way to know whether an answer is right. The learner waits for someone to read it to them, or skips it.
The teacher: has the worksheet already, usually as a document they typed. They do not have time to learn accessibility rules or a new platform, and many of their learners share old phones with little or no data.
The barrier removed: the worksheet exists, but not in a form the learner's device can read or interact with. Unscanned turns the teacher's text into a file that can be read, navigated and answered without sight, without a mouse and without internet, and that gives the teacher's own feedback after each answer.
Teacher side (the web app):
.html file of about 22 to 25 KB. Send it by WhatsApp, Bluetooth, email or USB stick.Learner side (the generated file):
speechSynthesis), shown only when the browser has it.localStorage), with a visible note if the browser blocks saving. "Clear my answers" lets the next learner on a shared phone start fresh.default-src 'none', so it cannot load or send anything. It works the same opened from a USB stick with the phone in airplane mode.One thing per line, blank line between questions.
Title: Adding fractions with different denominators
About: Maths, Grade 6
Instructions: Answer each question, then press Check answer.
Language: en
# Part 1
Q: What is 1/2 + 1/4?
a) 2/6
b) 3/4 *
c) 2/4
Hint: Change 1/2 into quarters first.
Explain: 1/2 is the same as 2/4. Then 2/4 + 1/4 = 3/4.
Q: Write 6/8 in its simplest form.
Answer: 3/4 | three quarters
Explain: Divide the top and bottom by 2.
Q: Why is 1/2 + 1/3 not 2/5?
Model answer: You cannot add the bottoms...
Q:, Question: or 1. start a question. Options can be a), (a), -, [ ] / [x]. Mark the right one with a trailing *, (correct), a tick, or [x]. Two or more marked options make a "choose all that apply" question.Answer: makes a typed-answer question; separate accepted answers with |. Capitals, extra spaces, curly quotes and a final full stop are ignored. Nothing else is guessed (so 6/8 is not accepted for "simplest form of 6/8" unless you list it).Hint:, Explain: and Model answer: are optional. Any other line is reading text. # Heading starts a section.Language: sets the file's language code so screen readers and read-aloud pick the right voice.Nothing to install for the app itself. Open index.html in a browser, or serve the folder:
node tests/server.js # serves http://127.0.0.1:4173/
Tests (Node 18+):
npm install
npx playwright install chromium
npm test # rebuilds examples/, runs every test, writes tests/RESULTS.md
LIVE_URL=https://bowen1314.github.io/unscanned/ npm run test:live # smoke test of the live site
src/unscanned.js holds everything that matters: a line-by-line parser (plain text to a worksheet object with warnings) and a generator (worksheet object to one HTML string). The same file runs in the browser and in Node tests.< escaped, so worksheet text can never become script (tested).Function.prototype.toString. ES5 and no CSS custom properties give older phone browsers a better chance. The tests parse the embedded script with acorn in ES5 mode.index.html, app.js, app.css) is static and has no backend, no analytics and no external requests. Drafts stay in the browser's localStorage. The preview is the real generated file in a sandboxed iframe.All automated, all in headless Chromium via Playwright. Full output with every number: tests/RESULTS.md. At the time of submission:
fetch() from inside the file is blocked by its own CSP. The teacher app also keeps working after the connection drops.img node) with the generated file.Not tested: no screen-reader users, learners or teachers have used Unscanned. I did not test with a real screen reader (TalkBack, VoiceOver, NVDA or JAWS) or on a real old phone; the accessibility tree is what browsers give screen readers, but how each screen reader announces it can differ. Only Chromium was automated.
1/2 is read by screen readers as written ("1 slash 2" or similar). There is no support for MathML, diagrams, images, tables or graphs, so worksheets that depend on a picture cannot be converted yet.Language: sets the code), but buttons such as "Check answer" are in English.Built with an AI coding assistant (Claude); design decisions, testing and write-up reviewed by the author. The assistant wrote most of the code, the example worksheets and the tests under the author's direction.
MIT. See LICENSE.