2018-09-30 22:01:58 +00:00
---
id: 587d778a367417b2b2512aa5
title: Improve Chart Accessibility with the figure Element
challengeType: 0
videoUrl: 'https://scrimba.com/c/cGJMqtE'
2019-08-05 16:17:33 +00:00
forumTopicId: 301015
2021-01-13 02:31:00 +00:00
dashedName: improve-chart-accessibility-with-the-figure-element
2018-09-30 22:01:58 +00:00
---
2020-11-27 18:02:05 +00:00
# --description--
HTML5 introduced the `figure` element, along with the related `figcaption` . Used together, these items wrap a visual representation (like an image, diagram, or chart) along with its caption. This gives a two-fold accessibility boost by both semantically grouping related content, and providing a text alternative that explains the `figure` .
2018-09-30 22:01:58 +00:00
For data visualizations like charts, the caption can be used to briefly note the trends or conclusions for users with visual impairments. Another challenge covers how to move a table version of the chart's data off-screen (using CSS) for screen reader users.
2020-11-27 18:02:05 +00:00
Here's an example - note that the `figcaption` goes inside the `figure` tags and can be combined with other elements:
2019-05-14 08:11:58 +00:00
```html
< figure >
< img src = "roundhouseDestruction.jpeg" alt = "Photo of Camper Cat executing a roundhouse kick" >
< br >
< figcaption >
Master Camper Cat demonstrates proper form of a roundhouse kick.
< / figcaption >
< / figure >
```
2020-11-27 18:02:05 +00:00
# --instructions--
Camper Cat is hard at work creating a stacked bar chart showing the amount of time per week to spend training in stealth, combat, and weapons. Help him structure his page better by changing the `div` tag he used to a `figure` tag, and the `p` tag that surrounds the caption to a `figcaption` tag.
2018-09-30 22:01:58 +00:00
2020-11-27 18:02:05 +00:00
# --hints--
Your code should have one `figure` tag.
```js
assert($('figure').length == 1);
2018-09-30 22:01:58 +00:00
```
2020-11-27 18:02:05 +00:00
Your code should have one `figcaption` tag.
2018-09-30 22:01:58 +00:00
2020-11-27 18:02:05 +00:00
```js
assert($('figcaption').length == 1);
```
Your code should not have any `div` tags.
```js
assert($('div').length == 0);
```
Your code should not have any `p` tags.
```js
assert($('p').length == 0);
```
2018-09-30 22:01:58 +00:00
2020-11-27 18:02:05 +00:00
The `figcaption` should be a child of the `figure` tag.
```js
assert($('figure').children('figcaption').length == 1);
```
Your `figure` element should have a closing tag.
```js
assert(
code.match(/< \/figure > /g) &&
code.match(/< \/figure > /g).length === code.match(/< figure > /g).length
);
```
# --seed--
## --seed-contents--
2018-09-30 22:01:58 +00:00
```html
< body >
< header >
< h1 > Training< / h1 >
< nav >
< ul >
< li > < a href = "#stealth" > Stealth & Agility< / a > < / li >
< li > < a href = "#combat" > Combat< / a > < / li >
< li > < a href = "#weapons" > Weapons< / a > < / li >
< / ul >
< / nav >
< / header >
< main >
< section >
2018-10-08 00:01:53 +00:00
2020-02-27 15:20:46 +00:00
<!-- Only change code below this line -->
2018-09-30 22:01:58 +00:00
< div >
<!-- Stacked bar chart will go here -->
< br >
< p > Breakdown per week of time to spend training in stealth, combat, and weapons.< / p >
< / div >
2020-02-27 15:20:46 +00:00
<!-- Only change code above this line -->
2018-10-08 00:01:53 +00:00
2018-09-30 22:01:58 +00:00
< / section >
< section id = "stealth" >
< h2 > Stealth & Agility Training< / h2 >
< article > < h3 > Climb foliage quickly using a minimum spanning tree approach< / h3 > < / article >
< article > < h3 > No training is NP-complete without parkour< / h3 > < / article >
< / section >
< section id = "combat" >
< h2 > Combat Training< / h2 >
< article > < h3 > Dispatch multiple enemies with multithreaded tactics< / h3 > < / article >
< article > < h3 > Goodbye world: 5 proven ways to knock out an opponent< / h3 > < / article >
< / section >
< section id = "weapons" >
< h2 > Weapons Training< / h2 >
< article > < h3 > Swords: the best tool to literally divide and conquer< / h3 > < / article >
< article > < h3 > Breadth-first or depth-first in multi-weapon training?< / h3 > < / article >
< / section >
< / main >
< footer > © 2018 Camper Cat< / footer >
< / body >
```
2020-11-27 18:02:05 +00:00
# --solutions--
2018-09-30 22:01:58 +00:00
2019-04-24 13:42:46 +00:00
```html
< body >
< header >
< h1 > Training< / h1 >
< nav >
< ul >
< li > < a href = "#stealth" > Stealth & Agility< / a > < / li >
< li > < a href = "#combat" > Combat< / a > < / li >
< li > < a href = "#weapons" > Weapons< / a > < / li >
< / ul >
< / nav >
< / header >
< main >
< section >
< figure >
<!-- Stacked bar chart will go here -->
< br >
< figcaption > Breakdown per week of time to spend training in stealth, combat, and weapons.< / figcaption >
< / figure >
< / section >
< section id = "stealth" >
< h2 > Stealth & Agility Training< / h2 >
< article > < h3 > Climb foliage quickly using a minimum spanning tree approach< / h3 > < / article >
< article > < h3 > No training is NP-complete without parkour< / h3 > < / article >
< / section >
< section id = "combat" >
< h2 > Combat Training< / h2 >
< article > < h3 > Dispatch multiple enemies with multithreaded tactics< / h3 > < / article >
< article > < h3 > Goodbye world: 5 proven ways to knock out an opponent< / h3 > < / article >
< / section >
< section id = "weapons" >
< h2 > Weapons Training< / h2 >
< article > < h3 > Swords: the best tool to literally divide and conquer< / h3 > < / article >
< article > < h3 > Breadth-first or depth-first in multi-weapon training?< / h3 > < / article >
< / section >
< / main >
< footer > © 2018 Camper Cat< / footer >
< / body >
2018-09-30 22:01:58 +00:00
```