Challenge - 5 Problems
Table Accessibility Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediateWhy use in tables?
What is the main purpose of the element in an HTML table for accessibility?
Attempts:
2 left
💡 Hint
Think about how screen readers understand what a table is about.
✗ Incorrect
The
📝 Syntax
intermediateCorrect use of for headers
Which option correctly marks the first row as header cells in a table for accessibility?
HTML
<table> <tr> <td>Product</td> <td>Price</td> </tr> <tr> <td>Apple</td> <td>$1</td> </tr> </table>
Attempts:
2 left
💡 Hint
Headers should use the tag, not . to mark them as headers. This helps screen readers identify column headers. 2:00remaining
✗ Incorrect
The first row cells should be
❓ selector
advancedSelecting header cells for row headers
Which CSS selector correctly styles all row header cells in a table for accessibility?
Attempts:
2 left
💡 Hint
Row headers use with a specific scope attribute. 2:00remaining 3:00remaining(1/5)
✗ Incorrect
Row headers are marked with <th scope="row">. Styling these helps visually distinguish row headers.
❓ layout
advancedResponsive table design for accessibility
Which CSS approach best helps make a wide table accessible on small screens?
Attempts:
2 left
💡 Hint
Think about preserving all data while allowing easy navigation on small screens.
✗ Incorrect
Wrapping the table in a container with overflow-x: auto lets users scroll horizontally, preserving all content and accessibility.
❓ accessibility
expertUsing ARIA roles for complex tables
In a complex data table with merged cells, which ARIA role helps assistive technologies understand the table structure best?
Attempts:
2 left
💡 Hint
This role treats the table like a grid of cells with keyboard navigation support.
✗ Incorrect
The role="grid" indicates a complex interactive table, helping screen readers and keyboard users navigate merged cells properly.
Practice
1. What is the main purpose of the
<caption> element in an HTML table?easy
Solution
Step 1: Understand the role of
The<caption><caption>element is used to give a title or description to a table, which helps screen readers and users understand the table's content.Step 2: Compare with other options
Options B, C, and D describe other table parts or styling, but only<caption>provides a descriptive title.Final Answer:
To provide a title or description for the table, improving accessibility. -> Option BQuick Check:
<caption>= Table title [OK]
Hint: Caption tags give tables a clear title for screen readers [OK]
Common Mistakes:
- Confusing <caption> with <tfoot> or <thead>
- Thinking <caption> styles the table
- Ignoring accessibility benefits of <caption>
2. Which of the following is the correct way to mark a header cell for a column in an HTML table?
easy
Solution
Step 1: Identify the correct element for header cells
The<th>element is used for header cells, not<td>.Step 2: Understand the scope attribute
For column headers,scope="col"is correct.<th scope="col">Header</th>uses<th scope="col">, which is the proper syntax.Final Answer:
<th scope="col">Header</th> -> Option DQuick Check:
<th scope="col">= Column header [OK]
Hint: Use <th> with scope="col" for column headers [OK]
Common Mistakes:
- Using <td> instead of <th> for headers
- Mixing scope="row" with column headers
- Omitting the scope attribute
3. Given the following table snippet, what will screen readers associate the header "Name" with?
<table>
<caption>User List</caption>
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alice</td>
<td>30</td>
</tr>
</tbody>
</table>medium
Solution
Step 1: Understand scope="col" usage
Thescope="col"attribute on the<th>means the header applies to the entire column below it.Step 2: Identify which cells belong to the "Name" column
The first column cells, such as "Alice", are associated with the "Name" header for screen readers.Final Answer:
The header "Name" is linked to the first column cells like "Alice". -> Option AQuick Check:
scope="col" links header to column cells [OK]
Hint: scope="col" links header to column cells below [OK]
Common Mistakes:
- Confusing row and column scope
- Thinking headers need id attributes to link
- Assuming caption links headers
4. What is wrong with this table snippet regarding accessibility?
<table>
<tr>
<td>Product</td>
<td>Price</td>
</tr>
<tr>
<td>Book</td>
<td>$10</td>
</tr>
</table>medium
Solution
Step 1: Check for caption element
The table lacks a<caption>, which helps describe the table for screen readers.Step 2: Check header cell tags and attributes
The first row uses<td>instead of<th>for headers, and noscopeattributes are present.Final Answer:
All of the above. -> Option CQuick Check:
Missing caption, wrong header tags, and no scope = C [OK]
Hint: Headers need <th> with scope and caption for full accessibility [OK]
Common Mistakes:
- Using <td> for headers
- Skipping caption element
- Not adding scope attribute to headers
5. You want to create an accessible table showing students and their scores. Which combination of elements and attributes is best practice?
hard
Solution
Step 1: Use
This helps all users understand the table's purpose.<caption>for table descriptionStep 2: Use
Column headers get<th>with proper scope for headersscope="col", row headers getscope="row". This clarifies relationships for screen readers.Final Answer:
Use <caption> for the title, <th scope="col"> for column headers, and <th scope="row"> for row headers. -> Option AQuick Check:
Caption + th with scope col/row = best accessibility [OK]
Hint: Caption plus <th> with scope="col" and scope="row" is best [OK]
Common Mistakes:
- Using <td> for headers
- Skipping scope attributes
- Relying only on aria-labels on data cells
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
