Testing a community-course timetable with a screen reader
Investigate table names, navigation, headers, and empty cells in a course timetable and compare them with a correctly marked-up venue table.
- Difficulty:
- beginner
- Estimated time:
- 25 minutes
Objectives
- Identify and navigate two ordinary data tables with screen-reader table commands.
- Compare visible relationships with exposed table names, dimensions, and headers.
- Investigate how empty cells communicate the absence of a scheduled session.
- Distinguish five timetable findings from useful passing behavior in the venue table.
Instructions
Use Testing data tables with a screen reader while investigating the community-course booking page.
- Record your screen reader, browser, operating system, relevant versions, and initial page state.
- Move to both tables and record their names and dimensions when your screen reader exposes them.
- Navigate representative cells by row and by column using table commands. Record the row header, column header, and value exposed for each cell.
- Compare that output with the weekday, time, course, and venue relationships shown visually.
- Include the apparently empty timetable cells in your review, and inspect the native markup if the output remains unclear.
- Identify exactly five findings in the timetable and record useful passing behavior from the venue-information table.
- For every finding, record actual and expected behavior, likely user impact, and remediation direction.
The venue table has a concise caption, correctly scoped row and column headers, logical source order, and meaningful cell content. Use it as a comparison rather than assuming that both tables are defective.
Exact announcements and table commands can differ across screen readers, browsers, and operating systems. Evaluate whether the relationships are exposed and useful rather than expecting one prescribed speech string.
Exercise workspace
Community course timetable screen-reader exercise
The exercise opens on a separate page. Return to this page whenever you need a hint, or when you are ready to continue and review the solution.
You can open the exercise in a new tab if you want to keep these instructions and hints available.
Hints
- Start by checking how each table is identified. Does each table expose a useful name as you move to it?
- Move through course cells in both directions and compare the visible weekday and time labels with the headers your screen reader exposes.
- Inspect the relationship created by the Time header, then consider what a visually empty timetable cell communicates without seeing the layout.
Solution
The timetable contains five focused naming and relationship findings. The smaller venue table provides a passing comparison.
The timetable has no accessible name
The Weekly timetable heading provides nearby visual context, but the table has no caption or other programmatic name. Give the table a concise caption that identifies the schedule.
Weekday labels are not column headers
Monday, Wednesday, and Saturday look like headings but are ordinary data cells. Mark genuine weekday headings as header cells with the correct column relationship.
Time-slot labels are not row headers
Each time range looks like a row label but is an ordinary data cell. Mark each time range as a row header so it can be associated with the course cells in that row.
The Time header exposes the wrong relationship
The top-left Time header uses row scope even though it labels the time column, producing a misleading relationship. Use a header relationship that matches the structure after correcting the rest of the header cells.
Empty cells do not communicate that no session is scheduled
Blank cells make the absence of a course apparent visually but provide no meaningful value during cell navigation. Include concise text such as No session when the absence is important to understanding the timetable.