OpenLayers, Accessibility & Drupal
I've been curious about maps and accessibility, but it hasn't been something I've had much time to explore. Because maps are so visual, it's hard to think about how to make them fully accessible. Sarah Bourne in Making maps accessible asks the serious questions that that are at the heart of this issue, and frankly ones that I haven't had the opportunity to explore.
I'm still wrapping my head around digital projections as there are hundreds of ways of implementing them. The standard way that web mapping is done is with EPSG (created by the now defunct European Petroleum Survey Group ) references. Common ones now include 900913 (which spells Google with numbers) and 4326 (World Geodetic System - an unprojected representation). The Atlas of Canada has historically encouraged 102009 (Lambert Conformal Conic) for representing data through web map service, but supports 48 projections for any of their maps.
One of the easiest barriers to address when working to improve accessibility is to ensure that the page can be accessed with a keyboard-only user. There's a comprehensive document by Opera on how to do this with GoogleMaps, but I haven't seen anything like it for OpenLayers, least not in English. In Dutch, there's a good example in geozet. There are quite a few examples out there for OpenLayers, including from within their example pages, but they were all about producing a separate accessible version. Both the Government of Canada & the Netherlands have invested in building up a keyboard only plugin for an older version of the OpenLayers library, but I don't know that either has actively worked to contribute these back to the core library.
Rather than approach this from the short term perspective of building a plugin, I looked at how I could bring keyboard navigation into the OpenLayers core code base. It was probably as much work to figure out how the OpenLayers library worked as it would be to get the GeoMap module working in a Drupal 7 environment, but with the important difference that there was the possibility to move the yard stick ahead. Keyboard accessibility is a pretty minimal level of accessibility, and looking into OpenLayers I can see many other ways to make it more accessible. Like many open source projects, OpenLayers is using GitHub. GitHub encourages people to fork the code for development and then makes it easier to contribute it back, so I set up my own OpenLayers repository.
Although far from perfect, I've added alternative text & keyboard navigation to the central navigation components of OpenLayers. You can tab through the map below, zoom in, pan left/right, & adjust visible layers now without ever using your mouse. Here's a demo of the work thus far:
I've enabled the issue queue for technical questions about this work. If there are issues around other issues mentioned here, please add them to the comments below.
About The Author
Mike Gifford is the founder of OpenConcept Consulting Inc, which he started in 1999. Since then, he has been particularly active in developing and extending open source content management systems to allow people to get closer to their content. Before starting OpenConcept, Mike had worked for a number of national NGOs including Oxfam Canada and Friends of the Earth.