Recently in Accessibility Category

In the previous blog post I discussed the guidelines I suggested we follow with regard to web accessibility. Although that discussion remains open, and I encourage more feedback, I think it would make sense not to get too hung up on that conversation.

Today, I would like to discuss the various action items this task force needs to accomplish and the timeframe in which they can be accomplished, and then begin dividing up the work.

Action Items

Here are the major action items I think would make sense for this task force to undertake, with the proposed name of the leader for that action item, proposed start date, and a few sub-items to give a little more information on the work involved with each part. It should be noted, the “leader” just means who will head up a particular subsection of this effort. For example, I don’t expect Cory to rewrite the style guide herself, but I would hope that she could take responsibility for that part of the task force to get the guide rewritten.

  1. Style Guide Revisions (Cory Lampert) – Start Date: January
    1. Formalize coding standards everyone has to follow
    2. Require Alt Tags
    3. No “Click here” links, etc…
  2. Automated Accessibility Testing (Brian Egan) – Start Date: January
    1. Choose the tool(s) (AChecker/CynthiaSays/Lift/etc)
    2. Create a plan to check all current pages with AChecker and our determined guidelines
    3. Build Accessibility into the Drupal Publishing workflow
      1. Use an editor with Achecker built in
    4. Generate lists of updated/modified pages that need testing
  3. Live Accessibility Testing (Alexis & Michael) – Start Date: January, testing begins when new CML site is finished
    1. Establish Working relationship with DRC
    2. Identify Tests that need to be run
    3. Which browsers need checking?
    4. Which pages are most important at first?
    5. Establish testing standards / methods of testing
    6. Who will run tests?
    7. How will they be scheduled?
    8. How often will they occur?
    9. Recruitment
      1. Work with DRC to find students who can help us perform live tests
      2. Possibly coordinate incentives
  4. Web Developers Training (Kee) – Start Date: January
    1. Create Screencasts / Presentations for Web Dev Meetings
    2. Common Accessibility Pitfalls
    3. Working with the automated accessibility checker in Drupal
  5. Modify / Add to our website (Brian Egan)Start Date: January
    1. Accessibility Feedback Form, something like: http://library.buffalo.edu/libraries/aboutus/policies-use/accessibility.php

Volunteer!

Ok, I’ve been kind enough to put some of your names on these items (you’re welcome! =P), but that was just my best guess as to who would be interested in leading each particular section. In addition to leaders, we need a volunteers to help with each section, particularly the Live Testing. If you have an interest in helping out with one of these sections, please let us know in the comments!

Note: Please see the Drupal Primer for information about Drupal.

As we ramp up for our transition to Drupal, I keep thinking of areas of our website that really need some love. One area which has come up time and again over the past year is my concern for the accessibility of our website. The transition to Drupal will give us an opportunity to build a robust, sustainable accessibility solution. These are five short suggestions I have for improving the accessibility of our site.

  1. Rewrite code - Certainly not the most glamorous solution (if there are glamorous accessibility solutions). However, getting the opportunity to fully rewrite the code for the website will go a long way toward making it accessible. This will allow us to tailor our style sheets for a variety of formats, such as low-vision, mobile, screen readers, print, addressing the needs of each format.
  2. Form an accessibility committee - I don't want to suffer committee death, so maybe we could reformulate the accessibility working group. I'm not sure about the structure, but I do know that it would be helpful to have a focused eye on the accessibility of our web site, much like we focus on usability. This type of committee could help create tools for evaluation of our website, define the standards we want to maintain, and help us perform my next idea:
  3. Run live accessibility tests - One very helpful tool would be to run accessibility tests just like we run usability tests. This would allow us to get real, human feedback, and allow us to learn more about how disabled users browse our website. This type of feedback could be wildly helpful, but would certainly require a bit of coordination and perhaps some funds for setting up a proper testing workstation, as well as incentives for participating in a study. Hence, my suggestion for a committee.
  4. Run automated accessibility tests - While no data will be as useful as full-blown live accessibility tests, there are a number of tools we can use to evaluate our website for accessibility before we get to that step. These tools can be a real help identifying a number of common errors that crop up for disabled users, such as providing vivid descriptions of images we use on the site.
  5. Build accessibility into our publishing workflow - Rewriting the site and doing a variety of tests can help us fix our problems, but how do we maintain a sustainably accessible site? Build accessibility into our workflow, of course! What I envision is that once a content provider has placed a new/updated piece of content into the workflow, we would have a program run an automated accessibility test of the content, as well as adding the piece of content to the "Live accessibility review queue" (kind of catchy). That way, when the web editors get the content, they have a quick report on problems that might have cropped up during the creation of the content, and would have a comprehensive list of sites to test since the previous round. This should make it easier for our web editors to keep a handle on the accessibility problems throughout the site, and should make live tests go more smoothly.

These are just a few ideas after a bad night of sleep. This really is one of those subtle, yet crucial areas we need to address. As a public institution, we have an obligation to provide equal access to our materials for all users. I'm not sure we're fully living up to that, and hope to correct a number of those issues with our upcoming Drupal transition.

Our move to a CMS provides an ideal opportunity to examine issues of resource identifier (URI) stability, which virtually all of the locally-hosted resources on our website currently lack.

What is a URI?


You probably already know what a URL is, and a URI is similar. Whereas speaking of a URL emphasizes the location of a resource, speaking of a URI emphasizes the resource itself. In practice, these may be the same thing. It turns out that on the web, the one sure-fire way of uniquely identifying something is by its URL. So, that URL happens to be its URI.

But resources can move. Their URLs can change. Although a particular resource's URL will always be unique, it may not always remain the same. Unfortunately, as is often the case, when a resource's URL changes, its URI changes as well. Which means that when a newspaper (for example) has an article with a URL like this:

http://newspaper/news/2005/03/12/kitten-licks-paw/

And then changes its CMS, causing the URL to change to:

http://newspaper/blabla?article=QIJW234JIJ09234LKJ&blabla=yes

Both the URL and URI change. That is, the identifier changes even though the resource that it represents didn't change - only its location did. A whole lot of links break as a result.

It doesn't have to be this way!

Implications of a CMS on linking

A CMS will negate internal linking issues (i.e. linking from page to page within the library website) by transparently assigning all resources unique IDs which it will use to construct links dynamically. Our resources will still have URLs, but they will change, causing some disruption (link breakage). This is likely to affect:

  • Browser bookmarks
  • Search engine rankings
  • Internal hyperlinks (from one of our pages to another of our pages)
  • Hyperlinks from other sites to pages on our site
  • Citations pointing to resources on our site

One of the ways to avoid this disruption (other than not going ahead with it) is to use HTTP redirects, which send a "30x Moved Permanently" message telling the web browser that a resource has moved and to what URL. The problem with building redirects for every resource is that:

  • It's hard to compile a list of exactly what we have to redirect to where
  • It's a pain to write a whole bunch of redirect scripts and/or set up redirect maps on the web server
  • It's messy to merge an old URI scheme in with a new URI scheme
  • Since we are continuing to maintain the old resource locations, they never fully "go away;" we have to continue to maintain the redirect table over time, tracking everything that has ever moved

Making URIs more stable

One way of stabilizing URIs is to hide resource implementation details. What does that mean? Here is an example of the URI of a resource on the library website:


This URI is bad because it is revealing; it reveals the fact that the resource it identifies is being served from an HTML file in a particular directory on our web server. It locates the resource, but does not provide a very stable identifier for it. What if we were to want to change the name of the undergrad.html file, or move it, or change the encoding of its content (for example, HTML to XML) or make it a server-side script (for example, PHP with a .php extension)? What would happen is that the resource would have to get a new URL and this URL would break.

For another example, here is a page within the Architecture Studies Library's Las Vegas Architects and Buildings Database version 2 (LVABD2):

Let's break that down. From left to right, we have:

  • UNLV library web server domain name
  • ASL website subdirectory
  • LVABD2 subfolder (called "archdb2" since it replaces an earlier version which was called "archdb")
  • An "index.php" script which is used internally by the LVABD2 web application
  • A "projects/view" parameter which tells the LVABD2 application that we want to view...
  • ...an entity in the database with ID 251

Now, this is a totally functional URL which, although not very good, is not the worst URL ever. But it requires us to ask what would happen in the future if we were to change the specific implementation of the LVABD2 application to one that did not use the same "index.php/projects/view/251" parameter scheme. In fact, we had to deal with this very issue last summer when we deployed LVABD2 to replace LVABD1. If you access the URL of the previous version:

http://www.library.unlv.edu/arch/archdb/

You'll notice that it loads a page that links to the home page of the new version. This is a file that we had to create. But it turns out that only this page redirects; none of the project view pages etc. within the old application redirect to their new equivalents. They are, in fact, all gone. It turns out that by upgrading to LVADB2 and its new URI scheme, we broke the links for everyone anywhere on the Internet who was linking to any of the resources within LVABD1 - even though the availability of the resources never changed at all. Whoops! (By the way, this is sort of my fault.)

When links break all over the place, people get annoyed. This causes us to avoid changing resource locations and implementations, which leads to our website falling behind the curve and becoming difficult to manage and use. Improvements in web technology frequently lead to gains in efficiency, productivity, ease of use, ease of management, and improvement in available features. In order to benefit from these improvements, websites have to change by adopting this new technology. But the URLs of their resources don't have to change, as long as those resources are kept separate from the technology used to provide access them.

So, getting back to the LVABD example:


What happens if we remove the implementation details of the LVABD web app from this URI? How about this hypothetical improved URI:

http://www.library.unlv.edu/arch/projects/251

Now, the great thing about this URI is that it's totally abstracted away from the resource it represents. There is not really a "projects" subdirectory within the "arch" directory. There may not even be an "arch" directory at all. As a patron, why should I care what directories there are, or that the LVABD2 application is written in CakePHP or Rails or TurboGears or whatever? I don't, and in any case, it's none of my business! I'm only requesting the content corresponding to the URI that I provide. In fact, in this example, LVABD hasn't changed at all; it's still there in the same location. We have simply configured the web server to automatically serve the LVABD URL equivalent whenever it receives a request for a URL matching the pattern of the "improved" version. The user requests a resource; we figure out how to deliver it. The URI can remain stable for as long as we have a web server and electricity. It can be persistent.

In summary

  • We should think of all of the information on the library website in terms of resources, of which a web page is only one possible manifestation. (Others might include XML/JSON output for an iPhone app; vCard output for the staff directory; iCalendar output for the library calendar; etc.)
  • The CMS is going to break a great deal of links on the library website. If we take the proper precautions, this will only have to happen once. If not, we will continue to get bit again and again by broken links.
  • This is not the CMS's fault; it's our fault for not abstracting away resource implementations from their URLs and designing a stable URI scheme a long time ago.
  • In the future, we should think about mapping our resources to stable URIs and consider planning a site-wide URI schema into which our resources can fit. A CMS will greatly simplify this process, automating most of what would otherwise be painstaking manual work.

At the recent Summit On Discovery, thoughts on our present information delivery model were strong. Most would acknowledge that there are problems with regard to discovery in the libraries (why else would we have a summit to address them?), but feel, perhaps, a little bit overwhelmed at the prospect of delivering or even imagining any kind of comprehensive solution. There are a variety of factors in play that all coalesce into a big, indiscernible, difficult "thing" that nobody wants to touch.

It must be said that from a pure technology standpoint, we certainly have the capability to deliver a vast improvement over our current information design and retrieval model. The dilemma that we are facing is not exclusive to our library and has been substantially addressed, if not more-or-less solved, elsewhere. We should keep in mind at all times that it is not only doable, but our responsibility as a library to do.

At the conclusion of the summit we were invited to a "demonstration conference" on discovery in April which will feature the following themes, verbatim from the invite:

- single search interface (federated searching, harvester type platform, etc.)
- open-source vs. vendor infrastructure
- information seeking behavior of different users
- social networking and web 2.0 features as related to discovery
- describing primary sources and other unique materials for discovery
- opening the library catalog for different record types and materials
- any aspect of discovery

Many here and elsewhere among the vast audience of this blog may have ideas that are relevant to these themes, but may not be interested in formally presenting them. That doesn't make them any less important. Chances are, if you are thinking it, someone else is, too. Do you have any ideas about information discovery in the libraries? Have you seen examples of advances in this area having been carried out in other libraries, or anywhere else? Do you have strong opinions? Weak opinions? WDS' goal is to take a problem and solve it. If we are to factor into the solution, we won't be able to do it without your input. Help us help you!

P.S. The first response in the comments will go down in history as the very first ever on the Webbin' Rebels blog!

About this Archive

This page is a archive of recent entries in the Accessibility category.

Architecture is the next category.

Find recent content on the main index or look in the archives to find all content.