SlideShare a Scribd company logo
1 of 36
Download to read offline
GNOME 3.0 Accessibility:
State of the Union
Alejandro Piñeiro (apinheiro@igalia.com)
Let's introduce it ...
Accessibility?
●

Means helping people with disabilities to

participate in any life activity

●

Like computer stuff. That involves
●

… programmatic access

●

… keyboard navigation

●

… themes
AT ?
●

AT == Assistive Technologie
●

Screen readers

●

On screen keyboards

●

Magnifiers

●

Ok
what needs an AT ?
●

Know which apps are running

●

Know the active app

●

Know the focus object

●

Be able to interact with the app
AT-SPI ?
●

“Assistive Technologie Service Provider Interface”
●

Daemon providing the functionality that
requires those ATs

●

“out of the process”

●

Using CORBA/bonobo on the old times
And the apps?
●

How they expose the data?

●

Direct CORBA calls to AT-SPI?

●

It would be doing stuff really similar …

●

But apps are heterogeneous ...
ATK
●

ATK = Accessibility ToolKit
●

Common interface

●

The atk-bridge uses ATK calls to know
that to expose to AT-SPI

●

Toolkits and apps implement ATK

●

“in process”
How this stuff was
implemented?
●

Not in time for GNOME 2.X
●

Isolated on runtime loadable modules
●

At-spi provided at-bridge

●

Gail provided an ATK implementation

●

Isolated since the beginning

●

Extension and access to private data
nightmares
That old GNOME 2.0
Stories from the past
Bill Haneman, March Mulhany,
GUADEC 2004: “Where we are today”

●
●

●
●

8 critical bugs, ~50 serious bugs
Assessment:
● 2.6 : Can be made to work, with some effort
● Need some HEAD components for better results
● 2.8 : Reasonable level of functionality “out of the box” :
(still at risk)
● GOAL: disabled users can do all key tasks
● Depends on regression control and attention by
packagers, community
GNOME 3.0 is coming!
(First introduced at Istanbul 2008)
Changes, changes!
●

CORBA is dead, long live DBUS
●

AT-SPI (major piece) CORBA based

●

Nokia fund initial move on 2008

●

Gsettings VS GConf

●

Desktops: GNOME Shell, Unity

●

Clutter, Gtk3

●

CSUN 2010 Accessibility Summit
Hey, why so serious?
●

We worked to get the a11y pieces on

GNOME 2.0
Why just keep sync with GNOME 3.0 is so

●

a big problem … ?

●

Lets talk about that later ...
GNOME 3.0 is here!
(April 2011)
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)
GNOME 3.0.1 improved
●

A11y community started to use a testing

distro based on Frederic Crozat one

●

Major functionality issues were solved

●

GNOME “classic” is still the solution for

a11y users
So, what we have here?
●

Infrastructure: ATK, AT-SPI

Toolkit implementations: GAIL, Cally, Java

●

Apps: LibreOffice

●

Ats: Orca, Caribou, GNOME Voice Control,

●

VEDICS, Dasher, OpenGazer, MouseTrap

●

A lot of things, right?
Really?
●

At-spi just ported, no new features

●

ATK still 1.0 after 10 years.

●

Less than 5 commits in last two years for

GVC, Dasher, MouseTrap, etc
What we really have?
●

Infrastructure requires to be updated

●

Some first citizens: Orca, Caribou,

GNOME Shell built-in magnification

●

Several Ats on their own

●

Whats the difference?
difference
●

Orca has a real community behind
Some history – good times
●

16 Oct 2000,

“GNOME Accessibility Summit”

●

●

●

Sun, IBM and others joined the party
A11y had a really big push

A lot of new stuff between 2000-2005:
●

ATK, AT-SPI, GAIL, Gnopernicus, LSR,
Some history – bad times
●

1 Jun 2007, IBM “change strategies”
●

●

LSR dies, Orca survives

27 Jan 2010, Sun is acquired by Oracle
●

Sun decreasing workforce is mostly
removed

●

Willie Walker stops to be a11y leader
and Orca co-maintainer
First conclusion?
●

If GNOME a11y wants to survive requires

to maintain a healthy community

●

But a11y applies to all GNOME.

●

Why “GNOME a11y”?, why not “GNOME”?

●

And talking about that ….
That mail …
●

2011-06-01
<snip>
>From my perspective, the a11y team is far too happy to be inits own
little corner, working on its 'testing distro' and its own little
tools that need to work on every OS and thus end up working properly
on none of them. Yet, when I try to run accerciser in a jhbuild tree
on my system, it locks up solid after a few minutes every single
Time...

<snip>
A11y had opposite feeling
●

Some IRC examples:

Jan 22 21:31:37 <anonymous> API: aha...yeah. We need support for users who don't use the
mouse at all.
Jan 22 21:32:14 <anonymous> Seems as though that would just be a fundamental thing to build
in
Jan 22 21:35:08 <anonymous> As we all know, designing for a11y helps *everyone*, not just
stupid disabled chumps that nobody cares about.
Jan 22 21:38:35 <anonymous> API - heh - just joshing. I wasn't poking at you. I was poking at
mainstream developers who haven't embraced accessible design yet.
Jan 22 21:39:33 <API>
yeah, I supposed that, but sometimes there are some strange
situations
Jan 22 21:40:06 <API>
for example, at Boston, there are some presentations, and then the
time of the "complainers from ally"
Communication breakdown
●

A11y “folks” thing that the others prefer them to be

isolated, and the others thinks that they are happy
with that …

●

Other extract from “that mail”:
“I think that we have to be honest about the fact that a11y is not a
first-class feature of GNOME until it is fully integrated” .
Current work and future
ATK/AT-SPI2 Hackfest
●

Analysis of current status and future

●

A lot of things to do now on ATK2

●

A lot of things would require an API

breakage
ATK/AT-SPI2 Hackfest (2)
●

A lot of ATK implementors to be updated
●

●

Clutter

●

LibreOffice

●

Unity

●

●

GTK

Etc.

AT-SPI2 would also require some changes
GailEctomy
●

Benjamin Otte and Matthias Clasen are

merging GAIL and GTK

●

First Benjamin conclusions about ATK

were really more radical ;)
Performance and stability
●

Target: being able to have a11y running

by default without affecting performance
and stability

●

Mike Gorse working on that, made some

changes

●

Require to measure the changes
GNOME Shell
●

Awesome built-in Magnifier
●

●

by Joseph Scheuhammer

On screen keyboard based on Caribou
●

by Nohemi Fernandez

GNOME 3.0 included some ATK patches

●

●

Still not really usable with Orca

●

Work in progress
A summary?
Current status
Current status
●

An accessibility framework

●

Bad: Not enough ATs or people
●

●

Bus factor of one in several cases

Good: GTK+ developers are taking care

of GAIL

●

What we need: improve the base, more

ATs, more people
Questions?

More Related Content

Similar to GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)

GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)Igalia
 
Unity: la shell di ubuntu
Unity: la shell di ubuntuUnity: la shell di ubuntu
Unity: la shell di ubuntuMarco Trevisan
 
New generation Linux distributions that companion with Geeko : opencocon and...
New generation Linux distributions that companion with Geeko :  opencocon and...New generation Linux distributions that companion with Geeko :  opencocon and...
New generation Linux distributions that companion with Geeko : opencocon and...shimadah
 
Campkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbookCampkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbookMarco Martin
 
Large-scale OpenOffice.org Migrations in Thailand
Large-scale OpenOffice.org Migrations in Thailand Large-scale OpenOffice.org Migrations in Thailand
Large-scale OpenOffice.org Migrations in Thailand Osdev
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android KernelJohn Lee
 
Troubleshooting Memory-Related Issues with the Memory Profiler
Troubleshooting Memory-Related Issues with the Memory Profiler Troubleshooting Memory-Related Issues with the Memory Profiler
Troubleshooting Memory-Related Issues with the Memory Profiler Unity Technologies
 
Introduction to Gnu/Linux
Introduction to Gnu/LinuxIntroduction to Gnu/Linux
Introduction to Gnu/LinuxRanjith Siji
 
How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)
How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)
How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)Igalia
 
Linux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun AccessibilityLinux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun AccessibilityMalte Timmermann
 
Ubuntu presentation
Ubuntu presentationUbuntu presentation
Ubuntu presentationFadwa Gmiden
 
Advanced Video Production with FOSS
Advanced Video Production with FOSSAdvanced Video Production with FOSS
Advanced Video Production with FOSSKirk Kimmel
 
Guide to the Open Source Desktop
Guide to the Open Source DesktopGuide to the Open Source Desktop
Guide to the Open Source DesktopPOSSCON
 
Intoduction to Linux
Intoduction to LinuxIntoduction to Linux
Intoduction to LinuxAnshul Sharma
 

Similar to GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011) (20)

GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
GNOME 3.4 accessible: Status, news, future (FOSDEM 2012)
 
Linux Sucks
Linux SucksLinux Sucks
Linux Sucks
 
Linux Sucks
Linux SucksLinux Sucks
Linux Sucks
 
Ubuntu 17.10
Ubuntu 17.10Ubuntu 17.10
Ubuntu 17.10
 
Unity: la shell di ubuntu
Unity: la shell di ubuntuUnity: la shell di ubuntu
Unity: la shell di ubuntu
 
New generation Linux distributions that companion with Geeko : opencocon and...
New generation Linux distributions that companion with Geeko :  opencocon and...New generation Linux distributions that companion with Geeko :  opencocon and...
New generation Linux distributions that companion with Geeko : opencocon and...
 
Campkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbookCampkde 2010: KDE Plasma netbook
Campkde 2010: KDE Plasma netbook
 
Opensource Software usability
Opensource Software usabilityOpensource Software usability
Opensource Software usability
 
Large-scale OpenOffice.org Migrations in Thailand
Large-scale OpenOffice.org Migrations in Thailand Large-scale OpenOffice.org Migrations in Thailand
Large-scale OpenOffice.org Migrations in Thailand
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android Kernel
 
Troubleshooting Memory-Related Issues with the Memory Profiler
Troubleshooting Memory-Related Issues with the Memory Profiler Troubleshooting Memory-Related Issues with the Memory Profiler
Troubleshooting Memory-Related Issues with the Memory Profiler
 
Introduction to Gnu/Linux
Introduction to Gnu/LinuxIntroduction to Gnu/Linux
Introduction to Gnu/Linux
 
How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)
How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)
How GNOME Obsoleted its "Enable Accessibility" Setting (FOSDEM 2013)
 
Linux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun AccessibilityLinux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun Accessibility
 
Ubuntu presentation
Ubuntu presentationUbuntu presentation
Ubuntu presentation
 
Advanced Video Production with FOSS
Advanced Video Production with FOSSAdvanced Video Production with FOSS
Advanced Video Production with FOSS
 
Guide to the Open Source Desktop
Guide to the Open Source DesktopGuide to the Open Source Desktop
Guide to the Open Source Desktop
 
Intoduction to Linux
Intoduction to LinuxIntoduction to Linux
Intoduction to Linux
 
Ubuntu Quick Guide
Ubuntu Quick GuideUbuntu Quick Guide
Ubuntu Quick Guide
 
Windows -> Linux
Windows -> LinuxWindows -> Linux
Windows -> Linux
 

More from Igalia

Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerIgalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in MesaIgalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesIgalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webIgalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersIgalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 
Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Igalia
 
Async page flip in DRM atomic API
Async page flip in DRM  atomic APIAsync page flip in DRM  atomic API
Async page flip in DRM atomic APIIgalia
 
From the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepFrom the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepIgalia
 
Migrating Babel from CommonJS to ESM
Migrating Babel     from CommonJS to ESMMigrating Babel     from CommonJS to ESM
Migrating Babel from CommonJS to ESMIgalia
 
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...Igalia
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023Igalia
 
On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023Igalia
 
Status Update of the VKMS DRM driver – XDC 2023
Status Update of the VKMS DRM driver – XDC 2023Status Update of the VKMS DRM driver – XDC 2023
Status Update of the VKMS DRM driver – XDC 2023Igalia
 

More from Igalia (20)

Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 
Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...
 
Async page flip in DRM atomic API
Async page flip in DRM  atomic APIAsync page flip in DRM  atomic API
Async page flip in DRM atomic API
 
From the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepFrom the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by Step
 
Migrating Babel from CommonJS to ESM
Migrating Babel     from CommonJS to ESMMigrating Babel     from CommonJS to ESM
Migrating Babel from CommonJS to ESM
 
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023
 
On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023
 
Status Update of the VKMS DRM driver – XDC 2023
Status Update of the VKMS DRM driver – XDC 2023Status Update of the VKMS DRM driver – XDC 2023
Status Update of the VKMS DRM driver – XDC 2023
 

Recently uploaded

Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 

Recently uploaded (20)

Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 

GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)

  • 1. GNOME 3.0 Accessibility: State of the Union Alejandro Piñeiro (apinheiro@igalia.com)
  • 3. Accessibility? ● Means helping people with disabilities to participate in any life activity ● Like computer stuff. That involves ● … programmatic access ● … keyboard navigation ● … themes
  • 4. AT ? ● AT == Assistive Technologie ● Screen readers ● On screen keyboards ● Magnifiers ● Ok
  • 5. what needs an AT ? ● Know which apps are running ● Know the active app ● Know the focus object ● Be able to interact with the app
  • 6. AT-SPI ? ● “Assistive Technologie Service Provider Interface” ● Daemon providing the functionality that requires those ATs ● “out of the process” ● Using CORBA/bonobo on the old times
  • 7. And the apps? ● How they expose the data? ● Direct CORBA calls to AT-SPI? ● It would be doing stuff really similar … ● But apps are heterogeneous ...
  • 8. ATK ● ATK = Accessibility ToolKit ● Common interface ● The atk-bridge uses ATK calls to know that to expose to AT-SPI ● Toolkits and apps implement ATK ● “in process”
  • 9. How this stuff was implemented? ● Not in time for GNOME 2.X ● Isolated on runtime loadable modules ● At-spi provided at-bridge ● Gail provided an ATK implementation ● Isolated since the beginning ● Extension and access to private data nightmares
  • 11. Stories from the past Bill Haneman, March Mulhany, GUADEC 2004: “Where we are today” ● ● ● ● 8 critical bugs, ~50 serious bugs Assessment: ● 2.6 : Can be made to work, with some effort ● Need some HEAD components for better results ● 2.8 : Reasonable level of functionality “out of the box” : (still at risk) ● GOAL: disabled users can do all key tasks ● Depends on regression control and attention by packagers, community
  • 12. GNOME 3.0 is coming! (First introduced at Istanbul 2008)
  • 13. Changes, changes! ● CORBA is dead, long live DBUS ● AT-SPI (major piece) CORBA based ● Nokia fund initial move on 2008 ● Gsettings VS GConf ● Desktops: GNOME Shell, Unity ● Clutter, Gtk3 ● CSUN 2010 Accessibility Summit
  • 14. Hey, why so serious? ● We worked to get the a11y pieces on GNOME 2.0 Why just keep sync with GNOME 3.0 is so ● a big problem … ? ● Lets talk about that later ...
  • 15. GNOME 3.0 is here! (April 2011)
  • 17. GNOME 3.0.1 improved ● A11y community started to use a testing distro based on Frederic Crozat one ● Major functionality issues were solved ● GNOME “classic” is still the solution for a11y users
  • 18. So, what we have here? ● Infrastructure: ATK, AT-SPI Toolkit implementations: GAIL, Cally, Java ● Apps: LibreOffice ● Ats: Orca, Caribou, GNOME Voice Control, ● VEDICS, Dasher, OpenGazer, MouseTrap ● A lot of things, right?
  • 19. Really? ● At-spi just ported, no new features ● ATK still 1.0 after 10 years. ● Less than 5 commits in last two years for GVC, Dasher, MouseTrap, etc
  • 20. What we really have? ● Infrastructure requires to be updated ● Some first citizens: Orca, Caribou, GNOME Shell built-in magnification ● Several Ats on their own ● Whats the difference? difference ● Orca has a real community behind
  • 21. Some history – good times ● 16 Oct 2000, “GNOME Accessibility Summit” ● ● ● Sun, IBM and others joined the party A11y had a really big push A lot of new stuff between 2000-2005: ● ATK, AT-SPI, GAIL, Gnopernicus, LSR,
  • 22. Some history – bad times ● 1 Jun 2007, IBM “change strategies” ● ● LSR dies, Orca survives 27 Jan 2010, Sun is acquired by Oracle ● Sun decreasing workforce is mostly removed ● Willie Walker stops to be a11y leader and Orca co-maintainer
  • 23. First conclusion? ● If GNOME a11y wants to survive requires to maintain a healthy community ● But a11y applies to all GNOME. ● Why “GNOME a11y”?, why not “GNOME”? ● And talking about that ….
  • 24. That mail … ● 2011-06-01 <snip> >From my perspective, the a11y team is far too happy to be inits own little corner, working on its 'testing distro' and its own little tools that need to work on every OS and thus end up working properly on none of them. Yet, when I try to run accerciser in a jhbuild tree on my system, it locks up solid after a few minutes every single Time... <snip>
  • 25. A11y had opposite feeling ● Some IRC examples: Jan 22 21:31:37 <anonymous> API: aha...yeah. We need support for users who don't use the mouse at all. Jan 22 21:32:14 <anonymous> Seems as though that would just be a fundamental thing to build in Jan 22 21:35:08 <anonymous> As we all know, designing for a11y helps *everyone*, not just stupid disabled chumps that nobody cares about. Jan 22 21:38:35 <anonymous> API - heh - just joshing. I wasn't poking at you. I was poking at mainstream developers who haven't embraced accessible design yet. Jan 22 21:39:33 <API> yeah, I supposed that, but sometimes there are some strange situations Jan 22 21:40:06 <API> for example, at Boston, there are some presentations, and then the time of the "complainers from ally"
  • 26. Communication breakdown ● A11y “folks” thing that the others prefer them to be isolated, and the others thinks that they are happy with that … ● Other extract from “that mail”: “I think that we have to be honest about the fact that a11y is not a first-class feature of GNOME until it is fully integrated” .
  • 28. ATK/AT-SPI2 Hackfest ● Analysis of current status and future ● A lot of things to do now on ATK2 ● A lot of things would require an API breakage
  • 29. ATK/AT-SPI2 Hackfest (2) ● A lot of ATK implementors to be updated ● ● Clutter ● LibreOffice ● Unity ● ● GTK Etc. AT-SPI2 would also require some changes
  • 30. GailEctomy ● Benjamin Otte and Matthias Clasen are merging GAIL and GTK ● First Benjamin conclusions about ATK were really more radical ;)
  • 31. Performance and stability ● Target: being able to have a11y running by default without affecting performance and stability ● Mike Gorse working on that, made some changes ● Require to measure the changes
  • 32. GNOME Shell ● Awesome built-in Magnifier ● ● by Joseph Scheuhammer On screen keyboard based on Caribou ● by Nohemi Fernandez GNOME 3.0 included some ATK patches ● ● Still not really usable with Orca ● Work in progress
  • 35. Current status ● An accessibility framework ● Bad: Not enough ATs or people ● ● Bus factor of one in several cases Good: GTK+ developers are taking care of GAIL ● What we need: improve the base, more ATs, more people