Responsive accessible table
How to keep a table accessible and readable on mobile. A simple solution: make it a definition list. Try this page on a wide page and tight one. On your desktop just zoom in and out with your browser.
This page is not tested yet and might not be conforming to WCAG 2.0.
Translation of all Dutch Ministries
Ministerie | English | Deutsch | Français | Espagñol |
---|---|---|---|---|
Ministerie van Algemene Zaken | Ministry of General Affairs | Ministerium für allgemeine Angelegenheiten | Ministère des Affaires Générales | Ministerio de Asuntos Generales |
Ministerie van Binnenlandse Zaken en Koninkrijksrelaties | Ministry of the Interior and Kingdom Relations | Ministerium für Inneres und Königreichsbeziehungen | Ministère de l'Intérieur et des Relations au sein du Royaume | Ministerio del Interior y de Relaciones del Reino |
Ministerie van Buitenlandse Zaken | Ministry of Foreign Affairs | Ministerium für auswärtige Angelegenheiten | Ministère des Affaires étrangères | Ministerio de Asuntos Exteriores |
Ministerie van Defensie | Ministry of Defence | Ministerium der Verteidigung | Ministère de la Défense | Ministerio de Defensa |
Ministerie van Economische Zaken | Ministry of Economic Affairs | Ministerium für Wirtschaft | Ministère des Affaires économiques | Ministerio de Asuntos Económicos |
Ministerie van Financiën | Ministry of Finance | Ministerium der Finanzen | Ministère des Finances | Ministerio de Finanzas |
Ministerie van Infrastructuur en Milieu | Ministry of Infrastructure and the Environment | Ministerium für Infrastruktur und Umwelt | Ministère de l’Infrastructure et de l'Environnement | Ministerio de Infraestructura y Medio ambiente |
Ministerie van Onderwijs, Cultuur en Wetenschap | Ministry of Education, Culture and Science | Ministerium für Bildung, Kultur und Wissenschaft | Ministère de l'Enseignement, de la Culture et des Sciences | Ministerio de Educación, Cultura y Ciencia |
Ministerie van Sociale Zaken en Werkgelegenheid | Ministry of Social Affairs and Employment | Ministerium für Soziales und Arbeit | Ministère des Affaires Sociales et de l'Emploi | Ministerio de Asuntos Sociales y Empleo |
Ministerie van Veiligheid en Justitie | Ministry of Security and Justice | Ministerium für Sicherheit und Justiz | Ministère de la Sécurité et de la Justice | Ministerio de Seguridad y Justicia |
Ministerie van Volksgezondheid, Welzijn en Sport | Ministry of Health, Welfare and Sport | Ministerium für Gesundheit, Gemeinwohl und Sport | Ministère de la Santé, du Bien-être et des Sports | Ministerio de Sanidad, Bienestar y Deportes |
The code example
HTML
<div id="copy"></div>
<table>
<thead>
<tr>
<th>...</th>
...
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
...
</tr>
</tbody>
</table>
JavaScript
Requires some JQuery; sorry for that. (original source: http://jsfiddle.net/5hMN8/)
var template = $("<dl>");
$("table thead tr th").map(function () {
return $('<dt/>', {
text: $(this).text()
}).get();
}).appendTo(template);
$("table tbody tr").each(function () {
var newDl = template.clone();
$(this).find('td').each(function (idx, ob) {
newDl.find(':nth-of-type(' + (idx + 1) + ')').after($('<dd/>', {
text: $(this).text()
}));
})
$('#copy').append(newDl);
});
$('#copy').addClass("tight-only");
$("table").addClass("table-wide-only");
CSS
Make definition list OR table visible.
.table-wide-only {
display:none;
}
.tight-only {
display:block;
}
@media (min-width:800px) {
.table-wide-only {
display:table;
}
.tight-only {
display:none;
}
}
This example is pretty old now (March 2018) and might be outdated.
Please consider this: Under-Engineered Responsive Tables by Adrian Roselli