Max Nakane: Accessibility of Plone - the Past, the Present and the Future
Keynote talk by Keynote at the Plone Conference 2015 in Bucharest.
I have been involved with ICT accessibility since the mid nineties. I was a developer of the FreeBSD project. I am a Unix server admin, web admin, accessibility advocate, podcaster. And I have used Plone for about five years.
I am totally blind, almost since birth. But I can use a PC and such.
There is no universally accepted definition of accessibility, as far as I know. It depends on the context. For me: information or service can be accessed by 'everyone' with virtually equal costs.
Who is everyone?
- With or without disability.
- Age.
- Situational: if you are driving a car, you cannot pay much attention to visual clues; in a quiet library you should probably not use audio; maybe you temporarily cannot use your hands.
- With different devices, not just PCs.
- Language, not everyone speaks English or Japanese.
So how about the costs of access?
- Can be simply a financial cost.
- Time: without hands, you may need more time for some actions.
You first need to know content is there: I cannot see an image without an alternative text.
Key to accessibility is:
- Make everything machine-readable.
- Help assistive technologies.
What are assistive technologies?
- Software or hardware to assist users with specific needs. For example screen readers. Several operating systems have packages for this installed by default.
- Magnifying part of the screen.
- Alternative input devices. Keyboards with very large keys. Complicated switch interfaces.
Machine readable:
- If you show an image of a character, versus text data, most people will be able to see them both. Machines cannot, unless they have image recognition.
- You can make text visually larger and bolder, or you can explicitly enclose it in an h1 tag.
What needs to be machine readable?
- Content to be presented. Have alternatives for images.
- Roles and states of UI elements. Identify menu items as menu items.
- And everything else if you can.
Besides this:
- Is there enough color contrast?
- Are the characters large enough? I can still 'see' 1-point fonts, but most people cannot.
- Can text be resized by the visitor?
- Make it easier to operate. Timeouts, like you need to finish a form within ten minutes otherwise you are logged out, can be hard for people with a disability on their hands.
- Do not autoplay audio, because then I cannot hear my screen reader anymore, so I cannot even stop it and will just leave the page.
So what specifically can you do? See Rob Porter's presentation: http://maurits.vanrees.org/weblog/archive/2015/10/rob-porter-how-you-can-become-an-accessibility-superhero
From a technical aspect, you are opening up to a broader audience and an increasing variation of access devices.
There may be social or legal aspects. There is an aging population that needs reading glasses. Don't worry about me there. The US has legislation, other countries too.
Why Plone? Possible choices for me were Movable Type, Drupal, Plone. What did I want?
- I should be able to manage it, edit it, and use it.
- Multilingual support.
- I want an inexpensive license.
Movable Type was not a practical choice.
Drupal: I did not want to use PHP. Actually it is doing really well for accessibility.
From a blind programmer's perspective: Python sucks. You have to count the spaces. But still better than PHP's incompatible upgrades and stuff.
Accessibility in Plone:
- Really good up to around Plone 3 days.
- In Plone 4 it was outdated.
- Plone 5: not perfect, but a bright future.
The accessibility info page was well written at first, but was forgotten after a while.
Up to Plone 4.x: Kupu was inaccessible, at least for me. No critical issues with generated content. With third-party products it was a different story.
Plone 5:
- Many outdated techniques have been removed.
- Accessibility page rewritten.
- Recent TinyMCE is completely accessible. Really good. I don't have to disable it anymore.
- I see increasing interest and attention from developers.
Room for improvement:
- Javascript widgets need to integrate WAI-ARIA: use roles and states for assistive technology.
- Some issues with color contrast of default theme.
- Diazo editor is not accessible.
- Need to raise awareness in community.
- Well written documentation for theme editing is needed.
Then Plone 5 could be a good choice.
If you are using assistive technology, give more feedback to the developers please.
Look at the web content accessibility guidelines: http://www.w3.org/TR/WCAG20/
Slides: http://www.accessibility.org/~max/talks/201510-plone.html
Twitter: @mnakane (English), @ma10 (Japanese)