D3.js
=====
`D3.js `_ ist eine Javascript-Bibliothek zur
Datenvisualisierung. Um Datenvisualisierungen zugänglicher zu machen, haben wir
ein paar Tipps zusammengestellt:
#. Um die Farben zu erläutern, könnt ihr eine Legende hinzufügen, :abbr:`z.B.
(zum Beispiel)` mit:
.. code-block:: javascript
const legend = chart.append("g").attr("aria-label", "Legend");
Alternativ kann auch ein Titel hinzugefügt werden:
.. code-block:: javascript
const legend = chart.append("g");
legend.append("text")
.text("Legend")
.attr("class", "legendTitle");
#. Nun können wir die Erläuterungen hinzufügen, :abbr:`z.B.
(zum Beispiel)`:
.. code-block:: javascript
legend.append("rect")
.attr("fill", function(d){return hot(d) });
legend.append("text")
.text(">30 °C");
#. Erläutern der Daten, :abbr:`z.B. (zum Beispiel)` für ein Balkendiagramm:
.. code-block:: javascript
chart.selectAll(".label")
.data(data)
.enter().append("text")
.text(row => row.year);
#. Optisch sind die Daten jetzt schon sehr viel zugänglicher, aber mit
Bedienhilfen werden nun auch die Tage auf der x-Achse erschlossen,
und würden :abbr:`z.B. (zum Beispiel)` alle vorgelesen werden. Die
Zugänglichkeit würde deutlich erhöht werden, wenn die Ausgabe so etwas
liefern würde wie *Die durchschnittliche Jahrestemperatur betrug 2011 9,6
Grad Celsius*.
Hierfür sollten dann nicht zunächst die Daten durchlaufen werden und
anschließend die Achsenbeschriftungen sondern jedes Datum mit der zugehörigen
Erläuterung:
.. code-block:: javascript
const ticks = chart.selectAll(".tick")
.data(data)
.enter().append("g")
.attr("class", "tick");
ticks.append("text")
.text((data) => data.year);
ticks.append("text")
.text(row => row.temperature)
.attr("class", "label");
Dies gibt folgendes XML aus:
.. code-block:: xml
2011
9,6 °C
…
#. Bei vielen Achswerten sollten :abbr:`evtl. (eventuell)` nicht alle Werte auf
der Achse angezeigt werden. ``display: none;`` oder ``visibility: hidden``
sind jedoch keine Lösung, da die Werte dann :abbr:`z.B. (zum Beispiel)` auch
nicht vorgelesen würden. Wir können jedoch die Positionierung der
Achsenbeschriftungen so verändern, dass sie außerhalb des sichtbaren Rahmens
stehen.
.. seealso::
* `Accessibility in d3 Bar Charts
`_
* `Accessibility in d3 Donut Charts
`_