[Music]
hi everyone hope you all had a lovely
afternoon tea or time zone appropriate
other break
um we have next up here
um sorry i'm looking at the wrong place
in the screen we have next up here don e
call it i'm talking about upstream
upstream accessibility a contributor's
guide
don likes to tinker with cloud
infrastructure and security and
regularly goes down rabbit holes in a
futile search for ways to develop
systems that are both reliable and
impenetrable as well as accidental
accessibility advocacy don can regularly
be found sharing knowledge within the
melbourne cloud infrastructure and
devops communities outside work don is
an occasional author kitchen alchemist
and raging sports ball fan
so don's talk is a pre-recorded talk um
there won't be time for live questions
after but don will be in the chat
chatting away with you so please ask
dawn all of your questions in the chat
all right we're ready to go
roll it chris
hello everyone it is really good to be
back here again at linux conference
australia once again from the comfort of
our own homes
and i am here this year to talk about
accessibility specifically accessibility
in the upstream of open source software
if that doesn't make sense to you yet
don't worry because my aim by the end of
this talk is to have laid out a
contributor's guide if you will for the
idea of upstreaming accessibility in
open source software
if you want to follow along with the
sources that i used to put together this
talk you can go to the link in the slide
that's up at the moment or you can scan
the qr code with your phone and it will
bring you to a github repository with a
list of all the sources that i used when
putting this talk together
to begin with i would like to
acknowledge the warandro people of the
kulin nation on whose land this talk was
recorded this is and always will be
aboriginal land their sovereignty was
never seeded
i'm sure that most of you have probably
met me or encountered me in the wild by
now
but for those of you who haven't we're
going to do a bit of an atypical
introduction again
last year at luna's conference australia
when i gave my talk on the privacy tax
which was about
privacy and data
data security in a world of tracking and
hacking with regards to disability
i had an artificial intelligence
introduce me
this time i want to introduce myself in
terms of the way that i get around the
world
pertinent piece of information to
understand here i don't have a driver's
license so that means that i have a few
different options for navigating my way
around the world i can find someone who
has both the car and a driver's license
and ask them to take me from point a to
point b
i can
get on public transport
i can go out and i can get myself a taxi
or use some sort of ride sharing app to
get myself from point a to point b
or i can walk
some of these options have various
benefits and downsides um
being driven by other people is a
wonderful thing but i am not always
going to be able to find people who have
a car a driver's license and the time to
get me from point a to point b
um using taxis and or ride sharing apps
costs a lot of time and money and
sometimes he's a really big faf
walking is very practical but as you
probably all know by now i'm quite
limited in my ability to walk and you
can't really walk long distances anyway
so what this means in practice is that
the way that i tend to get around the
world involves a lot of use of
melbourne's public transport system
at least in metropolitan melbourne is
made up of three different forms of
transport largely trains trams and buses
forget about the buses let's talk about
the trams and the trains
and i want to start here by talking
about the trams
because if i want to get from point a to
point b on a tram there are quite a
number of logistical hurdles to me
actually doing that
the victorian government's auditor has
actually done an audit recently on the
accessibility of the yara trams fleet
and yara tram stops
and what they found is that only about
half of the tram routes that run in
melbourne have low floor accessible
trams running on them at all
and none of those routes have low fall
low floor trams running 100 of the time
now
the chief importance here being that uh
the higher floor trams actually require
you to get upstairs to be able to get on
them so if you're a wheelchair user
essentially you cannot use high floor
trams unless you've somehow managed to
crawl yourself in the wheelchair up the
stairs
but it's not just the tram fleet that
prevents a that presents a logistical
barrier to
myself and other disabled people
actually using
the services of yara trams it's also the
fact that in order to be able to safely
get on a tram if you are a wheelchair
user even if it's a low floor tram you
need to actually be able to get on at a
stop that is accessible where the
curbside of the stop
meets the doors of the tram
and again
even on the route where the vast
majority of trams that are run are
accessible low floor trams
only one route
the number 96
comes close to 100 of its tram stops
being accessible the rest even the ones
that quite a number of low floor trams
run on hover between sort of 50 and 60
percent some have basically no
accessible stops at all
so to illustrate this
let's go for a walk through the
melbourne cbd
and have a look at some of the public
transport options that i would have if i
wanted to get from point a to point b on
a track
so it is currently
approximately nine o'clock
in melbourne on the 28th of december and
i have just got off a route 86 tram
uh at the burke street mall elizabeth
straight stop
and i want to do a little tour of all of
the tram stops going down to where my
office currently is to actually prove
this point about accessibility
then we have a crossing here
that is coming up ahead
and if i turn the phone very slightly to
the left
accessible tram stop
so you can see along these routes that
some of the trap stops are actually
accessible but if we head a little bit
further
something which you can't see
but is visually apparent to me is there
is a tram at the moment pulling up to
the accessible transport
which is a high fuel tram that has got
stairs coming up to it
so what we have there is the problem of
the stop is accessible
but the tram that's running along is
actually not
so we're now approaching collins
straight
there are cross between four and
straight levels of the stream
so actually crossing over the road
if i tilt this to the right
you can see again accessible
that's straight over three but again
it had one of the non-accessible trams
there
so they run 11 12 48 and 109 along there
and part of the problem is not all of
those trams are actually accessible
this is going to require me to make two
crossings
to actually show this to you
and you can see here again
that there
is a local trap
[Music]
so this area around the street the
little stream
this was just redone
at a um not small expense
as you can see
as i'm walking along here
they didn't actually think to redo the
tram stop
so this entire tram stop is a ground
level
and if i approach
the route 19 [ __ ] head which is
actually a beautiful illustration
of how this works
you can see
the doors don't meet the ground
so as you can see
that's not super ideal
there are certain areas of melbourne if
you want to get from point a to point b
by tram that are exceptionally
accessible very easy for wheelchair
users to just roll themselves on and
roll themselves off pretty easy for the
vast majority of other people with
physical disabilities to get on and get
off as well
but there are tram stops like the one at
the corner of flinders and elizabeth
street which even though there is ample
space to make the tram stop itself
accessible
and even though
a very large amount of money was just
spent renovating that precinct
nothing was actually done to make the
tram stop accessible
and they don't run low floor trams along
there now the audit report actually
pointed out that
yara trams used to have a
an exemption from
or a waiver around the accessibility
legislation in victoria that actually
expired in september of last year um the
new target was supposed to be for them
to make the vast majority of tram fleets
accessible by september of 2022
and probably surprising nobody who's had
any dealings with government they're not
going to meet that deadline either
the auditor also pointed out that this
actually puts them at risk of being sued
or taken to tribunal for offering
inaccessible services
so then we have to look at metro trains
because on the surface
metro trains actually seems like a much
better option if you want to take public
transport around melbourne all of
melbourne's trains at least the ones
that run on the metropolitan lines are
accessible they're all low floor you can
get in get out of them fairly readily
kind of
because the issue that you run into with
metro trains
is that they have the same sort of
problem that the trams do in that in a
lot of cases the floor of the train does
not actually meet the edge of the tram
stop the edge of the
the train platform
and so in order to get on
if you're me or if you're a wheelchair
user or someone who has some sort of
other mobility impairment you're
actually reliant in a lot of cases on
the driver
coming out and getting a ramp for you so
that you can then will yourself on and
off
and
as the many many complaint letters that
i have sent to metro trains can attest
and as the many many very polite letters
that i've got back from their complaints
department can also attest um that
doesn't always work out quite so well as
you might think so this is a train
sitting on a platform at flinders street
station if you look at the doors of the
trains that are open you can actually
see not only is there a gap between the
train and the platform that's quite
significant but there's also a height
differential and that means that if
you're in a wheelchair or you have
trouble lifting your knees it's going to
be really hard if not impossible to get
yourself on
this has been fixed to an extent by
raising the platforms at one end of the
platform where the driver usually comes
in so that people can roll themselves on
but that hasn't been done on every train
platform at every station and the other
issue with that is even then there's
only the one position that you can get
on the train you still have to get
yourself often all the way down the
platform to be able to safely get on the
train without assistance
there's a salient point here that i want
to illustrate
which is around
the nature of accessibility
the nature of adaptability and
assistance
and what these actually look like now
this is important because
in some cases even though the yara trams
network actually looks less accessible
in some cases the yara trams network is
actually the better option
if you're physically disabled and you
want to get from point a to point b
because you don't actually need help
from any individual person there's no
single point of failure you can get
yourself on and get yourself off because
the infrastructure has been built in
such a way to allow you to do that
essentially rather than you having to
ask people for assistance the
infrastructure has adapted
it's helped without the handshake it's
help that comes in the form of the way
that we've built up society
rather than help that relies on
individual people good will and single
points of failure
this sort of analogy is applicable to
many many other aspects of life as well
so something that's important to think
about here then is the idea of public
utilities
metro trains and yarra trams even though
they're technically privatized are
public utilities they're available for
anyone in the public to use on the
assumption that they pay some sort of
fee
in fact a modern world without public
utilities wouldn't really be a modern
world at all
a lot of the things that we're able to
do day-to-day
a lot of these structures of modern
daily life
are actually very much built around
these public utilities and public
support that we as a size that we as a
society have been able to put together
to function
interconnected but without needing to
ask for help from any specific
individual
and there are a lot of different aspects
of the world around us that we could
consider in some ways to be
public utilities in the sense that
regardless of whether one has to pay a
fee they are used by a very large
percentage of the public in their
day-to-day lives we can look at things
like water electricity public transport
but we can also look at things which are
much more relevant day-to-day to our
career in in our careers in technology
we can actually look at the internet and
computers and the whole interconnected
framework of the world wide web
as being part of a public utility
you know anyone can effectively just
walk into other people's public websites
and see what's up there and see what's
going on there
and that sort of thinking has been
brought to the forefront of
consciousness in the united states of
america recently by the country's
favorite pastime of
lawsuits specifically i want to call out
the robles versus domino's pizza llc
lawsuit which has been wending its way
through the courts for several years at
this point i believe it was actually
filed in 2019
and it was settled earlier this year
essentially what happened was guillermo
robles a blind screen reader user wanted
to order himself a pizza
and he chose to do this not by going
down to his local domino's pizza outlet
but by doing so online unfortunately
what he found was that he wasn't
actually able to not to navigate
domino's website
using his screen reader
after some attempts to resolve this he
followed the time-honored american
tradition of having to suffer rights and
sued domino's pizza
the consequence of this after it went
through
several layers of the courts and
appealed to the supreme court which
ultimately sided with robles
and then a second judgment in the lower
court which sided with robles and agreed
that domino's pizza needed to remediate
the issues with their website
the ultimate consequence of this is that
in the us at least
the world wide web and public websites
are moving towards being defined as a
place of public accommodation as part of
the americans with disabilities act and
this means that if you are legally
required to have your brick and mortar
stores accessible to all of the public
not just those members of the public
without disabilities
you are also required to do the same
with your online shopping website to do
the same with your corporate website to
provide equal access to people with
disabilities regardless of the type of
disability that they may have so that
they can consume your content interface
with your services or purchase your
goods
so that's america
let's take a little trip across the pond
i don't know what percentage of the
audience today has ever lived in or been
to
england wales scotland or northern
ireland
the constituent countries of the united
kingdom
but the united kingdom actually has a
really really
good situation which will allow us to
illustrate some of this idea of websites
as public utilities
for all of the massive problems with the
uk's government that have become
apparent
probably
well before my lifetime and have been
continuing to become apparent for the
entire time that i have been around
one thing that the uk does really well
is accessibility on their government
website essentially the dot gov dot uk
sites
and information on dot gov dot uk sites
massively varies from the uh much
satirizedpreparingwithemergencies.gov uk
to
her majesty's internal revenue service
to various parliamentary websites to
general uh
information on how to access various
aspects of the country
and the dot gov dot uk websites as a
whole
have the incredible achievement of
probably actually being one of the most
accessible top level domains on the web
and the reason why this is really
interesting is because by and large
uk government websites are all built
almost entirely with raw html and css
the reason why they're built that way is
actually for accessibility purposes
the idea is that if the government is
not building with frameworks if the
government and people building
government websites build with raw html
and css and have a consistent set of
standards that they have to follow
it's vastly more likely that the
websites that they produce actually will
be accessible
to anybody who needs to go to them
particularly now with html5
that a lot of features around
accessibility are inherently built into
html itself
and this is a strategy that's actually
worked really well
having uk government software developers
follow this strategy has
according to several surveys resulted in
the.gov.uktld being one of the most
accessible in the world
the problem is that
the modern web is not the dot gov dot uk
tld
the modern web is
built almost entirely these days on
frameworks
and whilst there are very good reasons
for the uk government choosing to build
the vast majority of their websites in
raw html and css there are also very
good reasons why the modern web is built
up the way that it is because there's no
point in everybody reinventing the wheel
there's no point in everybody writing
their code in raw html when we can
simply build frameworks and component
libraries which will allow us to reuse
other people's code and get on with the
business of building the websites that
we actually want to build
this ethos has made web development
vastly more accessible in terms of
people actually being able to produce
websites
if you look at a lot of the modern low
code platforms out there pretty well
anyone can knock up a website in not too
much time
and actually put it on the web so that
anyone is able to interface with their
content anyone is able to purchase their
goods and anyone is able to understand
the services that they may provide
the trade-off with that
is that if your framework is not
accessible
your website is not necessarily
accessible either
the web aim study has consistently found
that websites using frameworks have are
more likely to have accessibility issues
that are picked up by automatic checkers
and that they also have more
accessibility issues that are picked up
um through automatic automated checkers
ruby on rails is one of the uh
better frameworks out there for this and
some of the javascript-based frameworks
are very much the worst offenders as you
can see from this chart
but
it's true across the board that
there are not really any frameworks out
there that actually reduce your chance
of having accessibility errors on the
website that you're building
and there are a few things to look at
here around
what actually makes a framework or a
component library or some sort of
reusable setup accessible
full credit here to jess budd an
accessibility specialist from perth
western australia who i met at
conference in adelaide in 2019
she gave a talk there talking about how
react accessibility wasn't that hard
from her point of view and at the end of
the talk i challenged her on this i
actually said
in my view as a disabled person
the best kind of framework is a
framework where
people don't have to think about
building accessibility into it and the
fact that people have to think about
building accessibility and to react in
some ways actually means that it's maybe
it is that hard
we had a very very long and productive
discussion
after her talk and
in some ways as i've seen more of modern
web development build up and i've had
more discussions with people about how
it works i'm actually sort of coming
around to her point of view on this
that
sometimes
with regards to accessibility you don't
want the perfect to be the enemy of the
good
the problem with that though is that
some of these frameworks are designed so
that anyone who deals with
websites should be able to spin it up
themselves and they're not necessarily
going to know what they need to do to
make it accessible
so to boil it down into a few points
the first thing that makes a framework
or a component or any sort of reusable
widget that you can plug into some sort
of
framework to build or some sort of
programming language to build a website
is that it's easy to do
and that might mean that there is some
manual intervention that still has to
happen but it should be manual
intervention that's clearly documented
and easily explained to anyone without a
lot of coding experience the second and
perhaps more obvious aspect is there
should be no errors that mean that you
have to actually rewrite bits of the
component or bits of the framework
if you're building something reusable
that has accessibility errors inherently
baked in
at that point it kind of defeats the
purpose
if you have to go and write another
framework over it to actually make it
accessible
the third aspect around what makes a
framework accessible is
ease of use of accessibility features
and something that's really interesting
to call out here is tailwind css and
specifically the tailwind ui components
that they release
rely on a bunch of free icons and free
essentially component libraries
that are
fully accessible
the issue that you may run into and this
is part of where the nuance here is is
around
the difference between something that's
actually built
in a way that hinders accessibility and
something that's just not built to make
it easy
frameworks like your react views
angular's ruby on rails
tend to fall more into the form of
bucket that they're just not built to
make it easy
whereas
if a component library is bad it's
usually really bad and often that's
around actual accessibility errors being
baked in
speaking of accessibility errors
some of the accessibility errors that
you might run into around component
libraries
are
not the types of things that you might
think of off the top of your head
they're also not the types of things
that are necessarily going to be picked
up by automatic checkers
and i can illustrate this by using the
uh just use dark mode it'll be fine
principle these are two logos of the
chicago blackhawks of the national
hockey league
these were pulled off the website for
cat friendly which is a website that
lists essentially details around a
contract of hockey players who play in
the national hockey league
and i'm sure that most of you can
probably see the problem with this
fairly readily
um poor black hawk there
doesn't quite function on light mode
he's missing not just his eyes but some
of the paint on his face
of course this can essentially be solved
by saying just use dark mode it'll be
fine
but if at that point you've actually
built an entire website and you've set
it up with both light mode and dark mode
which the people who run cat friendly
probably haven't at this point if
they've got this error um
you would be a bit knocked if you
discovered that the images that you were
using had transparent bits that
essentially just disappeared depending
on the color of your background
and that kind of thing is a real issue
because it can't be picked up by
automatic checkers and you might start
with a component library that looks
perfectly fine
and then as you're adding
more and more accessibility features
things like actually theming your site
some of the more advanced features that
help people
particularly with visual differences
then
six months down the line you actually
discover that the component library that
you're using isn't accessible at all
because it works with one or one of
light or dark mode and not both
and
i'm sure that the vast majority of you
here would not be surprised by what i'm
about to say
but something that's really important to
consider here is
careful choice of frameworks when you
interact with
the web and when you are building
websites
is important and it is your
responsibility to look into it to do
this research not to find things that
are perfect
but to find frameworks that are going to
help you do this work rather than hinder
it
so that was a whole lot of discussion
around
public infrastructure and around
the basics of what makes an accessible
framework
but the reality is nobody's perfect
right not every framework is going to be
entirely accessible out of the box
so there's an important discussion here
to have if you are using open source
frameworks if you are building within an
open source ecosystem
about how we can contribute back to
public infrastructure about how we can
actually build around public
infrastructure to make it more
accessible to the people that use it
and this to me is where the concept of
upstream accessibility comes in
there's no point in having
fifty or a hundred or
a thousand or a hundred thousand
different web developers
make the same change to a framework or
to a component library or to
some other piece of reusable code
to make it accessible on their website
it is vastly preferable for all of us if
we can find ways to build this into the
framework at its core
to make it easier for people to use and
to make it more readily accessible so
that we don't have to have everyone
essentially reinventing the wheel in
amer in many many different ways
but the thing about upstream
accessibility that makes this kind of
interesting is
it requires becoming part of the open
source ecosystem and it requires
actually working out a way to
have a lot of these discussions around
accessibility and to push
for people to
take
take their frameworks and improve them
and a key component of this is that if
you can do some of the work for people
that will often show them the path to be
able to do the rest
so you're sitting down you're coding a
website
and you discover that maybe the
component library that you're using has
an outright accessibility error in it or
you're looking at different component
libraries and there's one that would be
absolutely perfect for what you want to
do
but it requires you to use a web
framework that doesn't really make
accessibility easy for you
at this point you're at the finding
issues stage
and there are several different ways to
deal with these sorts of discoveries
with varying chances of success
in some cases you can just
percolate what you've discovered up to
the maintainers of the upstream package
and say hey this is an issue around
accessibility if they're very switched
on if they're very active in making sure
that they do know what's going on and
that what they build is accessible
it's very likely that those changes are
going to be made really quickly
on the other hand you might find that
you're dealing with people who've never
really interacted with the concept of
accessibility at all
or you might find that you're dealing
with people who just don't understand it
and so once you've found an issue
then there's the question of
when to upstream
and when i originally proposed this talk
i thought that i was going to be giving
a very different roadmap for how to deal
with upstream accessibility
what changed my mind on this was a blog
post by sherry bernhaber who is one of
the luminaries of modern accessibility
particularly modern web accessibility
talking about how not to be an
accessibility grinch which is very
appropriate given that it's just gone
christmas and new year
and one of the things that she actually
talks about in that blog post which
completely changed my thinking on this
is that
you can't just take accessibility at a
point in time
part of maintaining accessible websites
accessible frameworks accessible
component libraries accessible reusable
anything
is about being able to constantly
evaluate your accessibility posture it's
about
having if not an extremely deep at least
deeper than surface level understanding
of what you need to do to make all of
these things work
and so when it comes to the question of
when to upstream accessibility
the fundamental question that you have
to ask yourself
is
am i dealing here with a group of people
who look like they're going to be
receptive to this
and how much time am i willing to put in
on fixes to make sure that these issues
are remediated and these are all
questions that you've got to consider
when you think about when to upstream
accessibility fixes
there are scenarios where it's just
better to walk away
there are scenarios where it's better to
actually find the most accessible option
off the shelf
and not worry about trying to make these
improvements
but if you have the time and the
wherewithal and you have maintainers who
are very receptive to this
upstreaming accessibility can have
massive benefits in the sense that it
can make reusable things that many
people are using and hopefully keeping
up to date
much much better in terms of experience
for disabled users of the web
the other thing that's very important to
understand when you're thinking about
when to upstream accessibility issues is
the difference between
a framework or component issue and a
site level issue
sometimes there will be things that you
want to build that are very specific
things that you want to build
that need to be accessible
but if those go into an upstream
framework
it may just add complexity that most
people don't need
if the core features of that framework
are accessible as is it may not actually
benefit people to build accessibility
directly in for edge cases where you're
building on top of the framework
because it will potentially add more
bloat
we'll get on to that a bit later
what we're talking about though in terms
of the really good candidates for
upstreaming accessibility are where
you've got framework level issues so
where you can either identify
improvements that can be made to the
framework that reduce the amount of
manual work that people need to do to
make things accessible
or where you can identify outright
errors in the framework that need to be
remediated for it to be accessible so
that's what you're essentially looking
at there's a bit of nuance in the
difference between a framework
a framework level issue and a site level
issue
but in general you can assume that if
you're building something on top of the
framework and you need to do work to
make it accessible it's probably on you
whereas if you're using something out of
the box in a framework and you find
yourself having to build around it or
rewrite it it's probably on them
and the human aspect is really important
to understand as i alluded to earlier
it's going to be a very different
scenario when you're dealing with
maintainers who are very understanding
of this or maintainers who don't know
much but are willing to learn
compared to when you're dealing with
maintainers who don't particularly care
but there are things that you can do to
make this easier as well in the process
of upstreaming accessibility
you can talk to the maintainers about
how the project is set up
if you're pushing in
upstream fixes and you don't intend to
be involved over the long term
make it as easy as possible for the
maintainers to actually merge those
fixes in so that means following the
code of conduct following the
contributing guidelines doing any
testing that's requested
and also showing your work in terms of
what you've done what it resolves and
how it actually improves the framework
or component or reusable thing
and this brings us to the concept of
implementation and testing
the
sort of piece around implementing fixes
is not one that i'm going to talk to
very much
and that is for the one very simple
reason that i am not a web developer
this is not what i do in my day-to-day
job
i can explain to you how all of this
works i can explain to you how i think
it can be done well but i cannot explain
to you how to remediate the problems
that's also going to vary vastly
depending on what sort of framework
you're using what sort of language it
interfaces with and the specific type of
reusable thing that you actually want to
uplift
so as far as implementing fixes my
recommendations would be that you
understand what accessibility issues are
that you test
your fixes for accessibility issues and
that you discuss that with other people
who are knowledgeable in the language or
framework that you're working on to make
sure that it would be an appropriate fix
and that it's also well implemented
my friend katie has inspired many many
aspects of this talk
and
is very very passionate about
accessibility but one thing that i
always really enjoy about working with
katie is at the end of it i come out
with much better code than i would have
had if if only my eyes were on it
the bit which is a bit easier to do from
a sort of run book is the accessibility
testing piece because presumably
well that's not always the case but
presumably if you're here at the point
of wanting to upstream accessibility
improvements you've identified that the
accessibility issue is there
and so testing in that sense is fairly
straightforward because it's about a few
things first of all being able to
demonstrate that the issue existed
originally and was repeatable sometimes
you can do that with automated
accessibility checkers sometimes you
can't
automated accessibility checkers are
only really half the story
it's about
being able to
verify that the accessibility issue is
gone once you have fixed it
and it's about being able to verify that
you've not made any other accessibility
issues worse and that you can otherwise
test and appropriately document the code
some of that as i said can be done with
automated checkers sometimes it will
require you to manually change things it
will require you to zoom your screen in
and out it will require you to use a
screen reader sometimes it will require
you to actually view things with sounds
off
there are many many different things
that you may have to do to be able to do
appropriate accessibility testing
the other important piece here is what
you as a maintainer need to know about
upstream accessibility because if you're
building your own system
you need to have again
a bit better than surface level
knowledge of what's going on with
accessibility if you want it to actually
be accessible
and that's about things like
understanding the automated checkers
that are out there it's about things
like understanding what you can't pick
up with automated checkers and you'll
need to test for manually it's really
really easy for things to disappear into
the ether if you don't know what it is
that you're looking for
even if they were accessible at one
point people can make changes that might
not be picked up by any automated
checking and so some of that as well
is if someone's come to you and said hey
i'm up streaming some accessibility
fixes
it's about understanding what you need
to do to keep the code base accessible
and if you're taking external pull
requests
understanding what you need to convey to
people to make sure that the code that
they're putting in is accessible
and as i said automation is only only
half the answer
ai
is not good enough yet that we can get
it to do accessibility for us
there are some accessibility issues that
have to be tested for and remediated
manually
and then there's a matter of actually
releasing fixes which is probably the
easy bit because at this point if you've
pull requested it following all of the
guidelines and it's been reviewed then
it will hopefully be released by the
maintainers
and from there you can look to
either helping them to continue to
uplift it going and building what you
were trying to build originally or
looking for other places where you can
upstream these accessibility fixes
i do want to briefly come back to the
point that i made earlier around
the ease of use of a lot of these
frameworks
because one thing to me that kind of
hinders
the web being accessible as a public
utility in the same way as metro trains
or yara trams
is the fact that
there's a big knowledge gap so a lot of
people don't actually understand what
needs to be done to make websites
accessible
and in some ways frameworks have made
this worse because people just take
things off the shelf and build with it
without actually understanding that
there's more work that they need to do
and that's why the dot gov dot uk
websites kind of built up the way that
they did is because if you are using raw
html and raw css you can take advantage
of all the features that are in there
and you have to know what you're doing
i want to close with a thought
experiment
imagine that all of the humans in the
world tomorrow
were turned into perfect spheres
and we had to travel around everywhere
by rolling
this immediately means
even if we have our own power we cannot
get into the vast majority of cars
only some public transport will be
accessible to us
there's a decent chunk of office
buildings that we won't be able to get
into
and there is a decent chunk of the web
that as a perfect sphere
we would not be able to interact with
if we don't have hands to deal with
keyboards or mice
then we're going to have to do things
like train voice activation software
and fundamentally what upstream
accessibility is actually about is the
concept of removing limitations
this means that if you want to
understand how to design things really
well
whether you be
someone trying to upstream accessibility
fixes or a maintainer accepting upstream
accessibility fixes
you've got to think like you're not who
you are you've got to think about
what people would do in different
scenarios and in some cases it can be
really instructive
to look at the bazaar to look at
situations like what if every human
tomorrow was turned into a perfect
sphere
because once you start thinking about
the bazaar and designing for the bazaar
you get really good at thinking about
humans and designing for humans rather
than just designing for yourself
i would not have been able to give this
talk without the wisdom without the
wisdom and expertise of others
specifically i want to call out the
three people that i named over the last
45 minutes
sherry burnham
for all of her body of work but for her
excellent blog post about how not to be
an accessibility grinch
jess budd for the stimulating
conversation that we had at ddd adelaide
in 2019 and for being willing to
understand my view and also challenge it
and change it
and katie mark for the many
conversations that we've had about
accessibility and for somehow always
giving me the perfect scenario to
illustrate the point that i've had in my
head that i didn't know needed to go in
the talk
i'm assuming that i have been answering
questions throughout the course of the
talk but if you do have more questions i
will be around later to answer them or
you can contact me on the um
information that's up on the slide
hopefully this talk has given you a good
roadmap to upstream accessibility
improvements that you want to see and if
you're a maintainer hopefully it's given
you a good roadmap to understand what
you need to do to keep your work to keep
your project accessible rather than just
making it accessible at a point in time