SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
How GNOME Obsoleted its
“Enable Accessibility”
Setting
Alejandro Piñeiro (apinheiro@igalia.com)
Topics
●

Accessibility vs. Accessibility Support

●

Phase 1: Getting Started

●

Phase 2: Rebuilding What We Had

●

Phase 3: Achieving “Always On” Accessibility

●

How Does This Affect Me?
How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Accessibility vs.
Accessibility Support
An extremely quick introduction
Accessibility: removing barriers
●

Themes and fonts

●

Keyboard shortcuts

●

Visual bells

●

Assistive Technologies

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Accessibility support: enabling
access via ATs
●

Screen Reader

●

Screen Magnifier

●

Navigation by on-screen keyboard

●

Navigation by voice

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Phase 1: Getting Started
Creating an Accessible, Free Desktop
Starting GNOME Accessibility
●

Mar 1999: GNOME 1.0 release

●

Oct 2000: “GNOME Accessibility Summit”
–
–
–

●

Sun, IBM, and others
How to make an accessible Free Desktop
Focus on GNOME 2.0

Jun 2002: GNOME 2.0 released

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Bolted on; not built in
●

Allowed to evolve independently

●

Implemented as gmodule plugins
–
–

●

gail
atk-bridge

Loaded conditionally at run-time based on an
Accessibility “on/off” user setting

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Plugin pros
●

Support won't interfere when it is not needed

●

No additional memory/CPU overhead

(i.e. Hide the problems rather than fix them)

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Plugin cons
●

Tied to the session

●

Loaded only at application start time

●

Users need accessibility enabled in order to
enable accessibility

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Enabled by default in GNOME 2?
●

●

Nov 2005: Accessibility enabled by default for
development releases: ACCEPTED
Jul 2008: Accessibility enabled by default for
stable releases: REJECTED

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
“Still we have the problem that
our current accessibility
technology just sucks too much
for being enabled by default.”
-- desktop-devel-list commenter

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Wait a moment ...
●

Still “sucks too much” after eight years?

●

Accessibility was seen as an optional add-on.

●

The Accessibility Team was always small.

●

And then ...

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Perfect storm
●

Corporate accessibility development stops
–
–

●

Corporate “change of direction”
Layoffs followed by takeovers

GNOME 3 development starts

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Phase 2: Rebuilding
What We Had
And taking the opportunity to make it better
2010: Rework existing support
●

Bonobo deprecation

●

AT-SPI over DBUS (AT-SPI2)

●

GObject Introspection

●

GSettings vs GConf

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
2010: Implement new support
●

New toolkits like Clutter

●

New widgets in existing toolkits like Gtk+ 3

●

New desktops like GNOME Shell

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
2011: Make improvements
●

●

●

Fix regressions in the new and reworked code
Improve toolkit a11y support, e.g.
GtkTreeView
Improve performance and stability

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
2010-2011: Integrate modules
●

Cally becomes part of Clutter

●

Gail becomes part of GTK

●

ATK implementations are now built-in

●

But atk-bridge remained a plugin

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Phase 3: Achieving
“Always On” Accessibility
It takes a community to obsolete a setting.
2012: “Year of Accessibility”
●

●

●

Hackfest to plan further work, including
accessibility enabled by default
Developers to focus on significantly improving
the accessibility stack
Friends of GNOME Campaign to support
additional development

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
What changed?
●

Stability improvements

●

Performance improvements

●

Accessibility framework not sending/getting
messages unless an AT is listening

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Enabled by default in GNOME 3?
●

Apr 2012: proposed again

●

tl;dr: ACCEPTED

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
The conservative approach
●

Proposed by the Accessibility Team

●

Just change the default value of the setting

●

Approved by the GNOME Community

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
The no-turning-back approach
●

Proposed by Benjamin Otte & Bastien Nocera

●

Make atk-bridge a library which toolkits link to

●

Embraced by the community (who pitched in)

●

Implemented as the solution

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
What's the difference?
●

Not an add-on but an add-in

●

For users: It JustWorks™

●

For developers:
–
–

App accessibility is tested by everyone
The atk-bridge is compiled by more developers

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Is it working?
●

Accessibility is always on as of GNOME 3.6.

●

Distros are shipping it, users are using it.

●

Developers have not suggested we undo it.

●

We're finding and fixing bugs here and there.

●

But...Yeah, it's working.
How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
How Does This Affect Me?
As a developer who wants to make my
application or environment accessible
Are you using GTK?
●

If you are using GTK >= 3.6:
–
–

●

GTK depends on the new library
Your app should be accessible out of the box

If you are using GTK2:
–
–

These changes were not backported
The setting was kept in GNOME 3 for such apps

How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Any other toolkit/application?
●

●

Assuming that you already have an ATK
implementation for your widgets ...
You only need to use at-spi2-bridge library
–
–

●

Add the dependency
Call an init method

GNOME Shell's patch:
–

16 insertions, 199 deletions
How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
Questions?

Mais conteúdo relacionado

Semelhante a How GNOME Removed its "Enable Accessibility

Open accessibility at the desktop - the present and the future.
Open accessibility at the desktop - the present and the future.Open accessibility at the desktop - the present and the future.
Open accessibility at the desktop - the present and the future.AEGIS-ACCESSIBLE Projects
 
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)Igalia
 
Gnome Architecture
Gnome ArchitectureGnome Architecture
Gnome Architecture동수 장
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectIgalia
 
The Chromium/Wayland project (Web Engines Hackfest 2017)
The Chromium/Wayland project (Web Engines Hackfest 2017)The Chromium/Wayland project (Web Engines Hackfest 2017)
The Chromium/Wayland project (Web Engines Hackfest 2017)Igalia
 
Freesoftwarealternatives 100903075340-phpapp02
Freesoftwarealternatives 100903075340-phpapp02Freesoftwarealternatives 100903075340-phpapp02
Freesoftwarealternatives 100903075340-phpapp02Gurpreet Singh Sond
 
Guadec 2012 lt - web application stores in gnome
Guadec 2012   lt - web application stores in gnomeGuadec 2012   lt - web application stores in gnome
Guadec 2012 lt - web application stores in gnomeJosé Dapena Paz
 
Web application stores in GNOME (GUADEC 2012)
Web application stores in GNOME (GUADEC 2012)Web application stores in GNOME (GUADEC 2012)
Web application stores in GNOME (GUADEC 2012)Igalia
 
GNOME Contribution
GNOME ContributionGNOME Contribution
GNOME Contributionprinceofgiri
 
The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)Igalia
 
The Chromium/Wayland Project (BlinkOn 9)
The Chromium/Wayland Project (BlinkOn 9)The Chromium/Wayland Project (BlinkOn 9)
The Chromium/Wayland Project (BlinkOn 9)Igalia
 
he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME dmgerman
 
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)Malte Timmermann
 
Multimedia in Plone - Andy Nicholson
Multimedia in Plone - Andy NicholsonMultimedia in Plone - Andy Nicholson
Multimedia in Plone - Andy Nicholsonknappt
 
SIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker PresentationsSIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker PresentationsCello Signal
 

Semelhante a How GNOME Removed its "Enable Accessibility (20)

Chromium wayland
Chromium waylandChromium wayland
Chromium wayland
 
Open accessibility at the desktop - the present and the future.
Open accessibility at the desktop - the present and the future.Open accessibility at the desktop - the present and the future.
Open accessibility at the desktop - the present and the future.
 
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)
GNOME 3.0 Accessibility: State of the Union (Desktop Summit 2011)
 
Blankon Installer
Blankon InstallerBlankon Installer
Blankon Installer
 
Gnome Architecture
Gnome ArchitectureGnome Architecture
Gnome Architecture
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
The Chromium/Wayland project (Web Engines Hackfest 2017)
The Chromium/Wayland project (Web Engines Hackfest 2017)The Chromium/Wayland project (Web Engines Hackfest 2017)
The Chromium/Wayland project (Web Engines Hackfest 2017)
 
Freesoftwarealternatives 100903075340-phpapp02
Freesoftwarealternatives 100903075340-phpapp02Freesoftwarealternatives 100903075340-phpapp02
Freesoftwarealternatives 100903075340-phpapp02
 
Guadec 2012 lt - web application stores in gnome
Guadec 2012   lt - web application stores in gnomeGuadec 2012   lt - web application stores in gnome
Guadec 2012 lt - web application stores in gnome
 
Web application stores in GNOME (GUADEC 2012)
Web application stores in GNOME (GUADEC 2012)Web application stores in GNOME (GUADEC 2012)
Web application stores in GNOME (GUADEC 2012)
 
GNOME Contribution
GNOME ContributionGNOME Contribution
GNOME Contribution
 
The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)
 
The Chromium/Wayland Project (BlinkOn 9)
The Chromium/Wayland Project (BlinkOn 9)The Chromium/Wayland Project (BlinkOn 9)
The Chromium/Wayland Project (BlinkOn 9)
 
he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME
 
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
 
Computer practical
Computer practicalComputer practical
Computer practical
 
Ubuntu Quick Guide
Ubuntu Quick GuideUbuntu Quick Guide
Ubuntu Quick Guide
 
Multimedia in Plone - Andy Nicholson
Multimedia in Plone - Andy NicholsonMultimedia in Plone - Andy Nicholson
Multimedia in Plone - Andy Nicholson
 
SIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker PresentationsSIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker Presentations
 
Homework
HomeworkHomework
Homework
 

Mais de Igalia

Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JITIgalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!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
 

Mais de Igalia (20)

Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
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
 

Último

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Último (20)

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

How GNOME Removed its "Enable Accessibility

  • 1. How GNOME Obsoleted its “Enable Accessibility” Setting Alejandro Piñeiro (apinheiro@igalia.com)
  • 2. Topics ● Accessibility vs. Accessibility Support ● Phase 1: Getting Started ● Phase 2: Rebuilding What We Had ● Phase 3: Achieving “Always On” Accessibility ● How Does This Affect Me? How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 3. Accessibility vs. Accessibility Support An extremely quick introduction
  • 4. Accessibility: removing barriers ● Themes and fonts ● Keyboard shortcuts ● Visual bells ● Assistive Technologies How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 5. Accessibility support: enabling access via ATs ● Screen Reader ● Screen Magnifier ● Navigation by on-screen keyboard ● Navigation by voice How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 6. Phase 1: Getting Started Creating an Accessible, Free Desktop
  • 7. Starting GNOME Accessibility ● Mar 1999: GNOME 1.0 release ● Oct 2000: “GNOME Accessibility Summit” – – – ● Sun, IBM, and others How to make an accessible Free Desktop Focus on GNOME 2.0 Jun 2002: GNOME 2.0 released How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 8. Bolted on; not built in ● Allowed to evolve independently ● Implemented as gmodule plugins – – ● gail atk-bridge Loaded conditionally at run-time based on an Accessibility “on/off” user setting How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 9. Plugin pros ● Support won't interfere when it is not needed ● No additional memory/CPU overhead (i.e. Hide the problems rather than fix them) How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 10. Plugin cons ● Tied to the session ● Loaded only at application start time ● Users need accessibility enabled in order to enable accessibility How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 11. Enabled by default in GNOME 2? ● ● Nov 2005: Accessibility enabled by default for development releases: ACCEPTED Jul 2008: Accessibility enabled by default for stable releases: REJECTED How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 12. “Still we have the problem that our current accessibility technology just sucks too much for being enabled by default.” -- desktop-devel-list commenter How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 13. Wait a moment ... ● Still “sucks too much” after eight years? ● Accessibility was seen as an optional add-on. ● The Accessibility Team was always small. ● And then ... How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 14. Perfect storm ● Corporate accessibility development stops – – ● Corporate “change of direction” Layoffs followed by takeovers GNOME 3 development starts How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 15. Phase 2: Rebuilding What We Had And taking the opportunity to make it better
  • 16. 2010: Rework existing support ● Bonobo deprecation ● AT-SPI over DBUS (AT-SPI2) ● GObject Introspection ● GSettings vs GConf How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 17. 2010: Implement new support ● New toolkits like Clutter ● New widgets in existing toolkits like Gtk+ 3 ● New desktops like GNOME Shell How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 18. 2011: Make improvements ● ● ● Fix regressions in the new and reworked code Improve toolkit a11y support, e.g. GtkTreeView Improve performance and stability How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 19. 2010-2011: Integrate modules ● Cally becomes part of Clutter ● Gail becomes part of GTK ● ATK implementations are now built-in ● But atk-bridge remained a plugin How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 20. Phase 3: Achieving “Always On” Accessibility It takes a community to obsolete a setting.
  • 21. 2012: “Year of Accessibility” ● ● ● Hackfest to plan further work, including accessibility enabled by default Developers to focus on significantly improving the accessibility stack Friends of GNOME Campaign to support additional development How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 22. What changed? ● Stability improvements ● Performance improvements ● Accessibility framework not sending/getting messages unless an AT is listening How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 23. Enabled by default in GNOME 3? ● Apr 2012: proposed again ● tl;dr: ACCEPTED How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 24. The conservative approach ● Proposed by the Accessibility Team ● Just change the default value of the setting ● Approved by the GNOME Community How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 25. The no-turning-back approach ● Proposed by Benjamin Otte & Bastien Nocera ● Make atk-bridge a library which toolkits link to ● Embraced by the community (who pitched in) ● Implemented as the solution How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 26. What's the difference? ● Not an add-on but an add-in ● For users: It JustWorks™ ● For developers: – – App accessibility is tested by everyone The atk-bridge is compiled by more developers How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 27. Is it working? ● Accessibility is always on as of GNOME 3.6. ● Distros are shipping it, users are using it. ● Developers have not suggested we undo it. ● We're finding and fixing bugs here and there. ● But...Yeah, it's working. How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 28. How Does This Affect Me? As a developer who wants to make my application or environment accessible
  • 29. Are you using GTK? ● If you are using GTK >= 3.6: – – ● GTK depends on the new library Your app should be accessible out of the box If you are using GTK2: – – These changes were not backported The setting was kept in GNOME 3 for such apps How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com
  • 30. Any other toolkit/application? ● ● Assuming that you already have an ATK implementation for your widgets ... You only need to use at-spi2-bridge library – – ● Add the dependency Call an init method GNOME Shell's patch: – 16 insertions, 199 deletions How GNOME Obsoleted its "Enable Accessibility Setting" | Alejandro Piñeiro | apinheiro@igalia.com