Free Open Source Software for Everyone An Introduction to GNOME and GNOME Accessibility Willie Walker GNOME Accessibility Lead RPI, December 2009
What is GNOME?
“GNOME offers an easy to understand desktop for your GNU/Linux or UNIX computer.” –
GNOME is a lot more than that.
GNOME is Free $0.00 But also part of the GNU project ( > Freedom 0 : run the program, for any purpose > Freedom 1 : study how the program works, and change it to make it do what you wish > Freedom 2 : redistribute copies so you can help your neighbor > Freedom 3 : improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits Various licenses picked by each individual GNOME project support this – LGPL, GPL, Apache, etc.
GNOME is Usable Easy for everyone to use Not about piling on features GNOME created Free Software's first and only Human Interface Guidelines Driven by GNOME Usability Project
GNOME is Accessible Software freedom for everyone, including users and developers with disabilities The most accessible desktop for any Unix platform All developers participate
GNOME is International
GNOME is Developer Friendly C, C++, Python, Perl, Java, C#, etc. Git, Bugzilla, IRC,
GNOME is Organized Foundation with several hundred members Elected board Usability, accessibility, QA, and release teams New release every 6 months
GNOME is Supported
GNOME is a Community Worldwide > ~1200 individuals with source code commit privileges, but many more contributors than that Community of communities > Coding, testing, translating, documenting, evangelizing, integrating,..., having fun
How Do I Join? (4 simple steps)
First: Find your passion
Translation? Documentation? Testing? Marketing? Usability? Development? Integration? Graphic Arts? System Administration? Accessibility? Journalism? Web development?
Second: Find a project
Third: Play
● Download sources: git.gnome.org ● Read the README ● Build it, run it, change it – PLAY!!! ● Communicate with MAINTAINERS
Fourth: Participate
IRC: irc.gnome.org Bugs: Fourth: Participate
● Be respectful and considerate ● Be patient and generous ● Assume people mean well ● Try to be concise
Fourth: Participate ● Be a self starter ● Don't wait for hand outs ● Play nice
Example
Example - Orca Step 1: My passion is accessibility!
Example - Orca Step 1: My passion is accessibility! Step 2: Solutions for people with visual impairments are cool!
Example - Orca Step 3: Find the WIKI, get the code > git clone git://git.gnome.org/orca; cd orca./autogen.sh && make && make install /usr/local/bin/orca Or pull source tarballs from
Example - Orca Step 3: (continued) vi src/orca/orca.py make install /usr/local/bin/orca Experiment! Play!
Example - Orca Step 4: Participate > Join orca-list mailing list > > “Dear orca-list, I cannot build orca...” > Join #orca or #a11y on irc.gnome.org > “Hi WillieWalker – I cannot build orca...”
Example - Orca Step 4: Participate > File bugs and feature requests > > Be clear, concise, and constructive > Summary: “Cannot access empathy contact list” Comment: “On Ubuntu Lucid with Empathy and Orca from git, I cannot access the contact list. Here's what I'm trying...” vs. “It done be busted you stewpid foolz.”
Example - Orca Step 4: Participate > Attach patches to your bug reports > Follow the coding style in the code > “Attached is a patch to fix the problem” git diff > bug txt † † You can do more sophisticated things with git so your patches will be attributed to you. See
Then What?
You develop reputation and trust Quality communication Quality bug reporting Quality patches
You become a developer!!! (Congratulations!)
But you have also... Developed an online example of you Developed a portfolio of your work Gained real life experience Established a network of collaborators, some of whom will be job references Had a lot of fun
GNOME Accessibility +
Accessibility is...
Access to knowledge. Access to communication. Access to power.
Accessibility is...
The right thing to do. The law (e.g., Section 508).
Accessibility is...
Free compelling access to the graphical desktop and the internet by people with disabilities. Web, , chat, calendar, contacts, documents, entertainment, system administration...
Who benefits?
EVERYONE!!!! “Curb Cuts” > Wheelchairs > Strollers > Skateboarders “Electronic Curb Cuts”
Users and Solutions Online screencasts available at: +
Users – keyboard only
Solutions – keyboard only Cannot use mouse > GNOME provides full keyboard access > You can do everything from keyboard Keyboard Enhancements (AccessX) > StickyKeys – type 1 key at a time > SlowKeys – eliminate stray keystrokes > BounceKeys – eliminate tremors > RepeatKeys – fine tune autorepeat > MouseKeys – use mouse from keyboard
Users – mouse only
Solutions – mouse only Users cannot use keyboard May or may not be able to click mouse MouseTweaks > Dwell clicking > “Hover” to click > Clicking by gesture > “Hover” and then move MouseTrap > Emerging, low cost head tracking
Solutions – mouse only Dasher > Predictive text entry > “Typing” speed of 35+ words per minute
Solutions – mouse only Dasher > Predictive text entry > “Typing” speed of 35+ words per minute
Solutions – mouse only GOK GOK > GNOME Onscreen Keyboard > Move mouse and hover or click to type > “UI Grab” and word completion
Users – switch only
Solutions – switch only GOK > GNOME Onscreen Keyboard > “Scanning Mode”
Solutions – switch only Click switch to start vertical scan
Solutions – switch only Wait to get to the row you want
Solutions – switch only Click switch to scan horizontally
Solutions – switch only Wait to get to the key you want
Solutions – switch only Wait to get to the key you want
Solutions – switch only Wait to get to the key you want
Solutions – switch only Wait to get to the key you want
Solutions – switch only Click to select the key
More on GOK - “UI Grab”
Users – low vision High contrast Large print Inverse
Solutions – low vision (theming)
Users – low vision
Solutions – low vision (Orca w/mag)
Users - blind
Solutions – blind (Orca w/speech) “... if you don't save, changes from the last 19 seconds will be permanently lost...”
Solutions – blind (Orca w/braille)
Future work
Migrate from CORBA to D-Bus Education and training Improved on screen keyboard Hearing impairments > Closed captioning > Visual audio Cognitive impairments > Dyslexia > Learning disabilities Speech recognition
Use it > > Spread the word > Become an expert > Train others Join an accessibility project Embrace accessibility How can you participate?
Embrace Accessibility?
I'm not interested in screen readers. I'm not interested in on screen keyboards. I'm a mouse user. I hate handicapped parking spaces. Don't 'dumb down' my world for those people. It's too hard. I'm a pedantic pixel position pundant. My color choices are the right color choices.
Even if you don't work on assistive technology, you need to work on accessibility.
Design and test for > Theming > Keyboard access > Assistive technologies (Orca, GOK, etc.) Use the graphical toolkit (i.e., GTK+) “Accessible design should be part of the mainstream developer's everyday practice.” Embrace Accessibility
Free Open Source Software for Everyone An Introduction to GNOME and GNOME Accessibility Willie Walker GNOME Accessibility Lead RPI, December 2009