Announce accessibility menu states
Use Serial announcements to identify the selected accessibility setting and verify its current state alongside the OLED.

UX Uma: I want you to compare the announced state with the visible state and name the settings that still lack an equivalent nonvisual description.
Predict the reading, then compare it with the measurement.
Wokwi ESP32
Third party ToolOpen the ESP32 editor, paste diagram.json, then paste sketch.ino.
Open Wokwi to paste in the files (new tab)Get the files
Use both prepared files. This is a paste-in setup; saving a project requires a Wokwi account.
sketch.ino
- Use the launch button above to open the ESP32 editor in Wokwi.
- Select the editor’s diagram.json tab and replace all its text with the supplied diagram.json.
- Select the sketch.ino tab, replace all its text with the supplied sketch.ino, then click Start Simulation.
Steps
Step 1
- Do
- In the Wokwi simulation panel, paste the diagram and sketch into Wokwi ESP32 and install Adafruit GFX Library and Adafruit SSD1306. Inspect the four labelled buttons.
- You will see
- Input: inspect the running Wokwi OLED and four colored buttons. The sketch labels UP, DOWN, SELECT, BACK as GPIO 25, 26, 27, 14. The OLED uses I2C GPIO 21/22; the buzzer uses GPIO 13. The real OLED shows IoT Device while Serial Monitor lists startup settings.
- Why it matters
- The four inputs and display are visible in one tool window. The serial values establish the starting accessibility state. Button names in the source match the four circuit controls. The buzzer adds a feedback channel beside the OLED.

Step 1 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 2
- Do
- In Wokwi Serial Monitor at 115200 baud, read the settings printed at startup.
- You will see
- Input: start the supplied Wokwi ESP32 sketch and read Serial Monitor at 115200 baud. Observed: "Settings loaded:" followed by "High Contrast: OFF". Observed: "Large Text: OFF" and "Sound: ON". Observed: "Brightness: 100%".
- Why it matters
- Expected: a fresh run starts with both visual aids off, sound on, and full brightness. The four values were printed by this Wokwi run, not inferred from the menu image. They establish the baseline for the later button changes. Limit: serial settings do not by themselves prove the OLED pixels are legible.

Step 2 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 3
- Do
- In the Wokwi simulation panel, tap SELECT, DOWN once to Settings, then SELECT again, releasing each button between taps.
- You will see
- Input: SELECT, DOWN, SELECT on the four Wokwi buttons. Observed OLED: ACCESSIBILITY opened with High Contrast selected. Observed Serial Monitor: BTN: SELECT pressed, BTN: DOWN pressed, BTN: SELECT pressed. Observed Serial Monitor: no Selected: High Contrast line on entering this list.
- Why it matters
- Expected: the settings list opens with its first option highlighted. The real OLED and button messages confirm that the navigation sequence reached the list. The entry action did not itself announce the first option in this run. A learner who uses serial feedback needs a further navigation action to hear the selection.

Step 3 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 4
- Do
- In the Wokwi simulation panel, tap DOWN once, then UP once, and read the Serial Monitor.
- You will see
- Input: DOWN from High Contrast, then UP from Large Text. Observed Serial Monitor: Selected: Large Text. Observed Serial Monitor: Large Text is currently OFF. Observed Serial Monitor: Selected: High Contrast; High Contrast is currently OFF.
- Why it matters
- Expected: each move identifies the newly selected setting and its current value. The two selection labels follow the button sequence seen in this run. Both values stayed OFF because navigation did not toggle either setting. The serial feedback supplies state information beyond the OLED highlight.

Step 4 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 5
- Do
- With High Contrast selected in the Wokwi simulation panel, tap SELECT, then DOWN and UP; read the Serial Monitor.
- You will see
- Input: SELECT on High Contrast, then DOWN and UP to revisit it. Observed Serial Monitor: Settings saved to NVS. Observed Serial Monitor: High Contrast: ON. Observed Serial Monitor on return: High Contrast is currently ON.
- Why it matters
- Expected: the toggle result and the later current-value announcement agree. The save message shows that the action updated stored settings in this run. The return announcement confirms the new ON value without inferring it from OLED colors. This consistency lets the learner verify the action through serial feedback.

Step 5 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 6
- Do
- In the Wokwi simulation panel, tap DOWN to Large Text, SELECT, then DOWN and UP; read the Serial Monitor.
- You will see
- Input: DOWN to Large Text, SELECT to toggle it, then DOWN and UP. Observed Serial Monitor: Selected: Large Text; Large Text is currently OFF. Observed Serial Monitor: Settings saved to NVS; Large Text: ON. Observed Serial Monitor on return: Large Text is currently ON.
- Why it matters
- Expected: the setting changes from OFF to ON and announces ON when revisited. The save and return lines confirm the new value in the real run. The accessibility list still appeared in its small font on the real OLED. The setting being stored does not prove this list itself enlarged its text.

Step 6 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 7
- Do
- In the Wokwi simulation panel, continue DOWN to Sound and Brightness, then compare the Serial Monitor with the OLED values.
- You will see
- Input: DOWN from Large Text to Sound, then DOWN to Brightness. Observed Serial Monitor: Selected: Sound. Observed Serial Monitor: Selected: Brightness. Observed Serial Monitor: no current-value line followed either selection in this run.
- Why it matters
- Expected: the selected names are announced as navigation continues. The two labels appear in the same order as the button presses. Unlike the first two toggles, neither setting produced a current-value announcement. The learner must use the OLED for those values in this version.

Step 7 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
Chapter checks
These questions refer to the chapter’s examples. Use the return links to review their answers.
You're designing a dashboard for a factory floor monitoring system. The operator needs to see: (1) machine status (running/stopped/error), (2) production count, (3) temperature readings, and (4) 7-day production trends. Where should you place the machine status indicator?
Return to the chapter’s knowledge checkA smart building dashboard monitors HVAC systems. Temperature thresholds are set to: Normal (18-24 C), Warning (15-18 or 24-28 C), Critical (<15 or >28 C). During testing, operators complain about 'alert fatigue' - too many warnings. Analysis shows 85% of warnings occur briefly during HVAC startup. What's the BEST solution?
Return to the chapter’s knowledge check