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

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

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
    Paste the diagram and sketch into Wokwi ESP32 and install Adafruit GFX Library and Adafruit SSD1306. Inspect the four labelled buttons.
    You will see
    UP, DOWN, SELECT, and BACK connect to GPIO 25, 26, 27, and 14. OLED SDA/SCL use GPIO 21/22; the buzzer uses GPIO 13.
    Why it matters
    Consistent controls and multiple feedback channels support the host’s principle of making important state easy to find.
    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
    Start at 115200 baud and read the settings printed at startup.
    You will see
    A fresh run reports High Contrast: OFF, Large Text: OFF, Sound: ON, and Brightness: 100%. The OLED opens on the home screen.
    Why it matters
    Start with explicit state rather than inferring settings from a tone. Saved preferences can change these initial values.
    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
    Tap SELECT, then DOWN once to Settings, then SELECT again. Release each button between taps.
    You will see
    The OLED opens ACCESSIBILITY with High Contrast selected. Serial prints the corresponding BTN messages.
    Why it matters
    The supplied extension announces navigation inside this menu; entering the menu itself does not yet announce its first item.
    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
    Tap DOWN once, then UP once, watching Serial Monitor.
    You will see
    Selected: Large Text and Large Text is currently OFF appear, followed by Selected: High Contrast and High Contrast is currently OFF on a fresh run.
    Why it matters
    The extension conveys both a label and its current toggle state, so the information is available without relying only on the 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, tap SELECT; then tap DOWN and UP to revisit it.
    You will see
    Serial prints High Contrast: ON and Settings saved to NVS; revisiting prints High Contrast is currently ON. The OLED reverses foreground and background.
    Why it matters
    The action result and subsequent state announcement should agree. This is the same consistency needed between a dashboard control and its displayed status.
    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
    Tap DOWN to Large Text, select it, then move away and back.
    You will see
    Large Text: ON appears when selected, and Large Text is currently ON appears when revisited. The accessibility list itself stays at its fixed small font.
    Why it matters
    A stored preference is not proof that every screen respects it. The source applies large text on home and main menu screens, leaving an accessibility gap in this list.
    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
    Continue DOWN to Sound and Brightness, comparing their announcements with the OLED values.
    You will see
    Serial announces Selected: Sound and Selected: Brightness but does not announce their values. The OLED still shows those values.
    Why it matters
    The supplied function only announces states for its first two toggles. Identify this limitation before claiming complete nonvisual navigation or adding more alerts.
    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