Parente's Mindtrove

Validate Your Accessibility

January 16, 2008

Eitan committed a new plug-in for Accerciser that makes it dirt simple to find basic accessibility problems. You know, the ones that cause grief for apps like Orca, GOK, On-Board, etc. To use it, run Accerciser, point it at part of a GUI, click validate, and wait for the report.

The rules in the plug-in aren't the greatest right now. But the plug-in is extensible with new rule sets called schemas. For instance, you could have a 'Desktop' schema to check basic GUI problems, a 'Web' schema to test document accessibility, and an 'Orca' schema to check a program's fitness for Orca scripting. The sky's the limit, and I'm sure Eitan, Will, and company will come up with quite a few useful tests.

To ward off any fear brought on by the word 'schema,' I should note that they're really just Python modules with simple, three-method classes in them. For example:

class CheckFocusable(Validator):
  def condition(self, acc):
    # only test accessibles that have the action interface
    return acc.queryAction()
  def after(self, acc, state, view):
    # check an accessible after checking its descendants
    # acc is the accessible
    # state is a dictionary of whatever you need to store across tests
    # view logs errors, warnings, etc.
    pass
  def before(self, acc, state, view):
    # check an accessible before checking its descendants
    s = acc.getState()
    if not s.contains(STATE_FOCUSABLE):
      view.error('actionable widget is not focusable')

No more excuses for inaccessible apps now, right?

Another Read: Spatial PulseAudio »

In his interview about Pulse Audio in Fedora 8, Lennart Pottering mentions support for spatial sound as one of his future goals: