Skip to content

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., your practice guide

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 Tool

Tier 1 · Web · No account

Version tested: Compiled and booted by the Wokwi gate (ESP32 Arduino core 3.3.11); captured in the Wokwi web editor on 2026-09-09. Date: 2026-09-09.

Open 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.

diagram.json

2,829 bytes · Circuit connections

Download

sketch.ino

16,281 bytes · ESP32 program

Download

  1. Use the launch button above to open the ESP32 editor in Wokwi.
  2. Select the editor’s diagram.json tab and replace all its text with the supplied diagram.json.
  3. Select the sketch.ino tab, replace all its text with the supplied sketch.ino, then click Start Simulation.

Steps

Screens captured against Wokwi ESP32 Compiled and booted by the Wokwi gate (ESP32 Arduino core 3.3.11); captured in the Wokwi web editor on 2026-09-09 on 2026-09-09; the tool may have moved on — the text steps are the contract.

  1. 1 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: Four labelled buttons connect to the ESP32. The ring marks UP, DOWN, SELECT, and BACK.
    Step 1 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
  2. 2 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: Fresh settings are High Contrast OFF, Large Text OFF, Sound ON, and Brightness 100%. The ring marks the startup settings.
    Step 2 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
  3. 3 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: ACCESSIBILITY opens with High Contrast selected. The ring marks the OLED menu.
    Step 3 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
  4. 4 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: The menu announces Large Text OFF and then High Contrast OFF. The ring marks the selection and current-value announcements.
    Step 4 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
  5. 5 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: High Contrast is currently ON appears on revisiting the setting. The ring marks the current-value announcement.
    Step 5 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
  6. 6 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: Large Text is currently ON appears on revisiting the setting. The ring marks the current-value announcement.
    Step 6 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
  7. 7 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: Sound and Brightness selections are announced without their values. The ring marks the two selection announcements.
    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.

  1. 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 check
  2. A 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

Caution

Serial text is a voice-over simulation, not spoken audio or a screen-reader integration. Only navigation within Accessibility announces labels, and only High Contrast and Large Text announce state. Use short separated taps: the original level-based button loop repeats while held. The OLED list has fixed small text and crowded rows; this exercise evaluates a starter interface, not certified accessibility. NVS preferences may change startup state.

Return to Interface Design: Dashboards · Browse Labs