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.