ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Turn a typed worksheet into one small, accessible, offline practice file for screen-reader, keyboard and low-vision learners.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 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.