Portland WeBWorK Accessibiliy Code Camp (August 2014)

The first week of August 2014, one of the WeBWorK development code camps took place in Portland, hosted by PCC. The central theme of the camp was improving and ensuring accessibility features for WeBWorK. Here are some of the accomplishments:

  • Presentations:
  • Greg Kraus wrote an Accessibility Guide for WeBWorK, now available on the wiki. This guide is less formal than a VPAT, and should give interested persons a good overview of accessibility issues related to WeBWorK.
  • Haris Gunadi and Karen Anderson wrote a preliminary VPAT for WeBWorK. Based on some issues identified there, many accessibility improvements were coded (listed below). Once these have been tested, we will write an official VPAT to be released with 2.10.
  • Flora McMartin, Vicki Roth, and John Travis conducted user studies with PCC instructors who had little or no experience using WeBWorK interacting with the WeBWorK3 interface. A summary of their findings will be released later.
  • Coding accomplishments:
    • clients/checkProblems.pl
      • This is a command line script which will accept a .pg file, render it on a remote server (hosted2.webwork.rochester.edu is used by default) and record any warnings. For example this can be run automatically on the OPL and produces a list of files which produce warnings of some sort.
      • A companion script  clients/renderProblem.pl does the same thing but sends the output of the rendering to be displayed in a browser.  It can be used to edit .pg problems from a regular command line editor instead of from within a browser.
      • There are directions in webwork2/clients for setting these up.  Set up is a little fussy because one must create a credentials file that makes it possible to access the remote server.
      • Mike Gage
        • helped John Jones set up the client on his server so that it can make automatic checks on the OPL.
        • showed the basic principles of the client/server communication to Peter Staab.
      • Peter Staab
        • Has implemented a new version of checkProblem.pl for WW3 which uses the JSON interface and Perl Dancer instead of XMLRPC and the Apache server. This will probably become the new standard as we switch to WW3 and Perl dancer becomes automatically available.
      • To do: Simplify the set up of credentials. Refactor code so that the different implementations share as much code as possible.  It’s convenient to be able to allow both  XMLRPC and JSON transport (possibly SOAP as well).  One should be able to change the transport protocol without completely changing other parts of the code.
    • Peter Staab
      • Continued coding on the WW3 javaScript, AJAX, interface
      • Implemented a version of clients/checkProblem.pl (a command line script which will render a .pg file on a server and check for warnings)
      • This is a link to my script for checking PG problems in a directory.  Note: you need to have webwork3 running on a server. https://github.com/pstaabp/webwork2/blob/ww3-feature/renderer/webwork3/bin/checkProblem.pl
        Here’s information on how to use it.usage: checkProblem [flags] filename(s)
        flags:
        –verbose: send the output to the commandline as well as the output file.
        –show-errors: print the errors (default: hides the errors)
        –show-warnings: print the errors (default: hides the warnings)
        –test-randomize: tests if the problem has randomization. (default: don’t check)
        –show-in-browser: opens the result in a browser.
        –output output_file: send the output to output_file.  (default: /opt/webwork/libraries/t/check_library_output.txt)
    • Mike Gage
      • evangelized checkProblems.pl use
      • worked on reviving the “bridge2” connection (originally written by Matt Leventi) which allows webwork to check answers in moodle’s quiz module.  The first goal is to get this to work (again) with moodle 1.9. Progress was made but there are still mismatches in data types that need to be corrected.
    • Dave Rosoff
      • Wrote scripts that search the OPL and flag problems with various characteristics. e.g. 800 problems use tables.  These problems will need to be rewritten using PCC’s new table macros so that the tables are accessible to screen readers.
      • Another script searches for problems with images lacking alt tags.
        I have devised a short sed script that trawls the OPL and searches for the string image. If it finds it, it looks for the string alt on the line matching image and the succeeding line. I’m sure there are a few problems that will be missed as well as some false positives, but this will be a start to finding the problems including images with missing alt text. Someone who knows sed or a more appropriate tool will surely be able to modify this to be more effective. -Dave Rosoff Please find the script here. (link is to github gist) Feel free to modify or fork as appropriate.
    • John Travis
      • Provided technical support for the user testing conducted during the code camp by Flora and Vicki
      • Worked on polishing the upcoming grant focused on increasing the use of WeBWorK in community colleges
    • Davide Cervone
      • Fixed the bug that left all but the first answer in matrices uncolored.  Now if a matrix is incorrect all of the blanks are colored red. QUESTION — DOES IT IDENTIFY WHICH ENTRIES ARE WRONG? (No, and the Matrix answer checked doesn’t tell you or give partial credit for that anyway, as I recall.)
      • Created an improved version of the scaffolding macros (formerly compoundProblems5.pl) which works properly with multianswer macros. Among other things it allows use of PGML in sections and allows nested scaffolds (is there a use case for this?)
    • Arnie Pizer
      • Worked on installation DVD/USB packages and documentation for lighttpd, mathjax
    • Jason Aubrey
      • Worked on refactoring the automatic install script so that checking install prerequisites is included in the script and testing it on a larger range of OS platforms.
      • Worked with Jonathan Duncan on linking answer blanks to correct/incorrect messages in answer table.
    • Greg Kraus
      • Demonstrated several online tools that can be used to gauge accessibility compliance with screen readers.  (Will be added to the accessibility page in the wiki.)
      • see also color contrast checkers. (will be added to the accessibility page in the wiki)
      • Created a folder of accessibility guidelines for developing PG problems. (will be added as a new page in the wiki)
    • Alex Jordan
      • worked on niceTables.pl.
      • Principal organizer for WeBWorK::Portland meeting
      • will create an updated VPAT describing the degree to which WeBWorK meets accessibility goals.  This is a useful and important document for those who wish to ensure that WeBWorK meets official standards (often state or national) before adopting WeBWorK.
    • Geoff Goehle
      • Produced immediate updates addressing some of the accessibility issues brought up by Greg, Haris, and Karen. These should make it into 2.10, pending testing.

        • Color contrast now passes AA standards
        • Keyboard focus behaves properly
        • Tag allowing skip to main area.
        • Hardcopy fixes — now it’s a link to the hardcopy page — the checkboxes/radio buttons were confusing screen readers.  Results in a cleaner class page.
        • Options (e.g. mathjax or images) are stored in the database — and remembered across sessions.  This change will require an update to the admin course from the command line— so it’s implementation needs to be explained carefully
        • Redo outline of the input field that has focus.
        • ARIA labels are now attached to answer blanks.
        • correct/incorrect labels in the Answer status box (at top of page) are now linked to the actual answer blank
        • Prev, Up, Next buttons relabeled to make them clearer. (Previous, XXX, Next) — XXX is context sensitive label pointing upward in the page hierarchy.
        • Check and submit answer buttons relabeled. (check my answers, submit my answers)
        • some of the headings in Set Info were updated. It remains in the right column which puts it at the bottom of the page for screen readers.
        • MathView editor is now keyboard navigable
        • Gateway quizzes still need work to make them navigable by screen readers.
    • Jonathan Duncan
      • Creating initial frame work that makes “bridge2” work between moodle 2.x and webwork
      • Worked with Jason to link incorrect/correct messages in answer table to their corresponding text boxes.
    • Nelly Selem
    • To do
      • What is the best permanent home for some of the documentation on accessibility that we created in the google docs. Probably in a blog post, but permanent placement where? on the wiki? in the pages of openwebwork.org? (a drupal site)

Leave a comment