Posts Tagged ‘tables’

Reason #21312 to build accessible data tables – convert them directly to YUI flash charts!

Thursday, January 17th, 2008

Following up the success of the data table to Google chart post, and the request in the comments to do the same for YUI charts, go and check the YUIblog today (like, now) and get your fix there:

example of how the script creates a chart above a data table from the table data

The elevator pitch:

  • Create a valid HTML data table
  • Add two script tags to the body and a class to each table
  • Have tasty pie charts above each of the tables

[tags]tables,accessibility,yui,flash,progressive enhancement[/tags]

Generating charts from accessible data tables and vice versa using the Google Charts API

Tuesday, January 8th, 2008

Google have lately been praised for their chart API and my esteemed colleague Ed Eliot has a workaround for its restrictions in terms of caching and server hits.

I played around a bit with it and thought it very cool but it felt a bit clunky to add all these values to a URL when they could be in the document for those who cannot see pie charts. This is why I wrote a small script that converts data tables to charts using the API and a wee bit of JavaScript.

Using this script you can take a simple, valid and accessible data table like the following and it gets automatically converted to a pie chart.


<table class="tochart size300x100 color990000" summary="Browsers for this site, March 2007">
<caption>Browsers</caption>
<thead>
<tr><th scope="col">Browser</th><th scope="col">Percent</th></tr>
</thead>
<tbody>
<tr><td>Firefox</td><td>60</td></tr>
<tr><td>MSIE</td><td>25</td></tr>
<tr><td>Opera</td><td>10</td></tr>
<tr><td>Safari</td><td>5</td></tr>
</tbody>
</table>

Simply add the script to the end of the body and it’ll convert all tables with a class called “tochart”. You can define the size (widthxheight) and the colour as a hexadecimal triplet as shown in this example. If you leave size and colour out, the script will use presets you can alter as variables in the script itself.

What about data tables from charts?

As Victor of the Yahoo! Accessibility group asked for the other way around, this is now also possible. When you use the verbose data mode for the charts and add the class “totable” to the image the script will generate a data table preceeding the image and null out the alternative text. For example:


<img src="http://chart.apis.google.com/chart?cht=p3&chco=339933&chs=450x150&chd=t:10,58,95,30,63&chl=Apples|Oranges|Pineapples|Bananas|Pears" alt="Fruit Consumption of under 15 year olds, March 2007" class="totable"/>

The tables have a class called “generatedfromchart” which you can use to move them off-left if needed.

Check out the demo page and download the script with the demo page and CSS to have a go with it yourself. Of course, all is licensed creative commons, so go nuts.

Useful? Please comment if you want something extra or wonder how the script works.

[tags]accessibility,charts,api,google,tables,javascript[/tags]