WEBVTT

00:00:00.000 --> 00:00:12.025 align:middle line:90%


00:00:12.025 --> 00:00:14.710 align:middle line:84%
<v Brianna Blaser> OK, folks
thanks for joining us today.

00:00:17.770 --> 00:00:21.080 align:middle line:84%
For those of you that I don't
know, my name's Brianna Blaser.

00:00:21.080 --> 00:00:25.660 align:middle line:84%
And I work with our
AccessCSforAll project

00:00:25.660 --> 00:00:27.778 align:middle line:84%
here at the University
of Washington.

00:00:27.778 --> 00:00:30.070 align:middle line:84%
And one of the things that
we're doing for this project

00:00:30.070 --> 00:00:31.780 align:middle line:84%
is trying to get
together and talk

00:00:31.780 --> 00:00:36.700 align:middle line:84%
about accessible programming and
accessible programming tools.

00:00:36.700 --> 00:00:40.630 align:middle line:84%
Earlier this year, Julia
Ferraioli came to an event

00:00:40.630 --> 00:00:43.765 align:middle line:84%
we had that was funded
by Google at UW,

00:00:43.765 --> 00:00:45.900 align:middle line:84%
and was talking about this
work that she's doing.

00:00:45.900 --> 00:00:47.150 align:middle line:90%
And it was really interesting.

00:00:47.150 --> 00:00:50.320 align:middle line:84%
So we wanted to have a chance
to share it with you all.

00:00:50.320 --> 00:00:53.620 align:middle line:84%
And Julia was game to
join us and do this.

00:00:53.620 --> 00:00:55.805 align:middle line:84%
So I'm really excited
about this today.

00:00:55.805 --> 00:00:57.430 align:middle line:84%
A couple of things,
I just want to make

00:00:57.430 --> 00:00:59.852 align:middle line:84%
sure that anybody
that needs it, knows

00:00:59.852 --> 00:01:01.060 align:middle line:90%
that captioning is available.

00:01:01.060 --> 00:01:03.970 align:middle line:84%
So you should be able
to turn on the captions

00:01:03.970 --> 00:01:06.405 align:middle line:90%
at the bottom of your screen.

00:01:06.405 --> 00:01:07.780 align:middle line:84%
And if that doesn't
work, there's

00:01:07.780 --> 00:01:10.150 align:middle line:84%
a link that I put in the
chat that you can use

00:01:10.150 --> 00:01:14.740 align:middle line:90%
as well to access the captions.

00:01:14.740 --> 00:01:16.965 align:middle line:84%
And I will be
monitoring the chat.

00:01:16.965 --> 00:01:18.340 align:middle line:84%
And if you have
questions, I know

00:01:18.340 --> 00:01:21.430 align:middle line:84%
we have some time for
discussion at the end.

00:01:21.430 --> 00:01:24.255 align:middle line:84%
And I'll let Julia,
take it from there.

00:01:24.255 --> 00:01:25.630 align:middle line:84%
<v Julia Ferraioli> Thanks, Brianna.

00:01:25.630 --> 00:01:28.030 align:middle line:90%
I appreciate it.

00:01:28.030 --> 00:01:29.770 align:middle line:90%
So, hi, everyone.

00:01:29.770 --> 00:01:31.480 align:middle line:90%
I'm Julia Ferraioli.

00:01:31.480 --> 00:01:35.930 align:middle line:84%
I work in the Open Source
Programs office at Google,

00:01:35.930 --> 00:01:40.030 align:middle line:84%
which means that I do various
things around sustainability

00:01:40.030 --> 00:01:42.280 align:middle line:90%
of open source software.

00:01:42.280 --> 00:01:44.560 align:middle line:84%
Has absolutely nothing
to do with what

00:01:44.560 --> 00:01:45.650 align:middle line:90%
I'm talking about today.

00:01:45.650 --> 00:01:48.125 align:middle line:90%
Sp I won't dwell on that.

00:01:48.125 --> 00:01:49.750 align:middle line:84%
As Brianna mentioned,
this is something

00:01:49.750 --> 00:01:50.875 align:middle line:90%
I have been thinking about.

00:01:50.875 --> 00:01:54.250 align:middle line:84%
But it's definitely not
my time full-time job.

00:01:54.250 --> 00:02:00.670 align:middle line:84%
So it's generally what
lurks in the back of my mind

00:02:00.670 --> 00:02:03.020 align:middle line:84%
when I go to sleep or
something like that.

00:02:03.020 --> 00:02:11.490 align:middle line:84%
So, I have been what would I
kind of call low vision off

00:02:11.490 --> 00:02:16.440 align:middle line:84%
and on for the past,
actually like three years,

00:02:16.440 --> 00:02:17.970 align:middle line:90%
apparently now.

00:02:17.970 --> 00:02:23.750 align:middle line:84%
And I kind of say I say it's
off and on because my eyes work

00:02:23.750 --> 00:02:25.610 align:middle line:84%
kind of like an
auto-focused camera that

00:02:25.610 --> 00:02:27.920 align:middle line:90%
doesn't know what to do.

00:02:27.920 --> 00:02:31.780 align:middle line:84%
In which, it will zoom in on
something and then zoom out.

00:02:31.780 --> 00:02:36.950 align:middle line:84%
And it makes things blurry
pretty much all the time.

00:02:36.950 --> 00:02:39.530 align:middle line:90%


00:02:39.530 --> 00:02:44.740 align:middle line:84%
So I'm going to show a pretty
good approximation of how

00:02:44.740 --> 00:02:46.880 align:middle line:90%
I see most of the time.

00:02:46.880 --> 00:02:50.390 align:middle line:84%
But if you're prone to
motion sickness, look away.

00:02:50.390 --> 00:02:53.920 align:middle line:84%
I'll tell you when
it's safe to look back.

00:02:53.920 --> 00:02:56.605 align:middle line:84%
And I'll describe what's
going on in the demo.

00:02:56.605 --> 00:03:00.970 align:middle line:90%


00:03:00.970 --> 00:03:06.420 align:middle line:84%
So this is a GIF of a camera
focused on some sort of plant.

00:03:06.420 --> 00:03:11.010 align:middle line:84%
It's using a specific
micro photography technique

00:03:11.010 --> 00:03:12.430 align:middle line:90%
that I don't know what it is.

00:03:12.430 --> 00:03:14.370 align:middle line:84%
But it's slowly
zooming in and out,

00:03:14.370 --> 00:03:18.060 align:middle line:84%
bringing different parts of
the plant in and out of focus.

00:03:18.060 --> 00:03:20.370 align:middle line:84%
It's pretty dizzying
and nauseating.

00:03:20.370 --> 00:03:24.280 align:middle line:90%
So I'm going to stop now.

00:03:24.280 --> 00:03:29.690 align:middle line:84%
So it's safe to come
back to this slide deck.

00:03:29.690 --> 00:03:33.040 align:middle line:84%
So that's kind of what I
experience most of the time.

00:03:33.040 --> 00:03:41.020 align:middle line:84%
I can force my eyes to
focus for brief seconds.

00:03:41.020 --> 00:03:45.690 align:middle line:84%
But, generally
speaking, that winds up

00:03:45.690 --> 00:03:48.430 align:middle line:84%
with a headache that
lasts the rest of the day.

00:03:48.430 --> 00:03:52.180 align:middle line:84%
And I really don't enjoy
that headache much at all.

00:03:52.180 --> 00:03:59.160 align:middle line:84%
So the worst thing that an
engineer can really face--

00:03:59.160 --> 00:04:04.290 align:middle line:84%
and at the time of this talk,
I was a full-time engineer--

00:04:04.290 --> 00:04:06.360 align:middle line:84%
but the worst thing
I could think of

00:04:06.360 --> 00:04:08.010 align:middle line:90%
was an intermittent failure.

00:04:08.010 --> 00:04:13.260 align:middle line:84%
And I was dealing with a
biological version of one.

00:04:13.260 --> 00:04:16.890 align:middle line:84%
So they make debugging
really difficult.

00:04:16.890 --> 00:04:19.320 align:middle line:84%
So I tried various
forms of debugging.

00:04:19.320 --> 00:04:22.890 align:middle line:84%
I got a beautiful,
high resolution screen

00:04:22.890 --> 00:04:26.400 align:middle line:84%
which meant that my
blurry vision was

00:04:26.400 --> 00:04:29.170 align:middle line:90%
really high resolution.

00:04:29.170 --> 00:04:31.890 align:middle line:84%
So that didn't
really work for me.

00:04:31.890 --> 00:04:35.880 align:middle line:84%
I got glasses-- very
specialized glasses--

00:04:35.880 --> 00:04:38.520 align:middle line:84%
that were a little
bit more than what you

00:04:38.520 --> 00:04:41.130 align:middle line:90%
can pick up at the drugstore.

00:04:41.130 --> 00:04:44.050 align:middle line:84%
And those actually
made everything worse,

00:04:44.050 --> 00:04:45.420 align:middle line:90%
including the headaches.

00:04:45.420 --> 00:04:48.330 align:middle line:90%
So I stopped wearing them.

00:04:48.330 --> 00:04:52.330 align:middle line:84%
And I tried some, onboard
my Mac, assistive tech

00:04:52.330 --> 00:04:57.590 align:middle line:84%
like increased contrast,
bigger font sizes, et cetera.

00:04:57.590 --> 00:05:03.050 align:middle line:84%
And those were moderately
successful, I would say,

00:05:03.050 --> 00:05:06.290 align:middle line:90%
but still not really enough.

00:05:06.290 --> 00:05:09.020 align:middle line:84%
So I had to really make
peace with the fact

00:05:09.020 --> 00:05:15.410 align:middle line:84%
that I was, am, and probably
always will be disabled.

00:05:15.410 --> 00:05:17.580 align:middle line:84%
My eyes are never
going to get better.

00:05:17.580 --> 00:05:19.910 align:middle line:90%
So, what do I do now?

00:05:19.910 --> 00:05:23.025 align:middle line:90%


00:05:23.025 --> 00:05:26.380 align:middle line:84%
So, I'm probably preaching
to the choir here,

00:05:26.380 --> 00:05:31.740 align:middle line:84%
but the definition of
disability given by the WHO

00:05:31.740 --> 00:05:35.880 align:middle line:90%
is probably one of my favorites.

00:05:35.880 --> 00:05:39.510 align:middle line:84%
It's when there's this gap
between the environment

00:05:39.510 --> 00:05:43.050 align:middle line:84%
a person lives in and the
capabilities of their body.

00:05:43.050 --> 00:05:46.050 align:middle line:84%
And I was living in a
development environment

00:05:46.050 --> 00:05:51.510 align:middle line:84%
that my body was not
made for anymore.

00:05:51.510 --> 00:05:55.980 align:middle line:84%
And my eyes had to work
harder to do my job than any

00:05:55.980 --> 00:06:00.030 align:middle line:84%
of my colleagues because
the environment was

00:06:00.030 --> 00:06:02.430 align:middle line:90%
built for them, and not for me.

00:06:02.430 --> 00:06:06.110 align:middle line:90%


00:06:06.110 --> 00:06:10.140 align:middle line:84%
But how does it apply
to actual development?

00:06:10.140 --> 00:06:13.350 align:middle line:84%
I want you to kind of think
about your development

00:06:13.350 --> 00:06:15.160 align:middle line:90%
environment.

00:06:15.160 --> 00:06:17.010 align:middle line:84%
So when we get going
from scratch when

00:06:17.010 --> 00:06:20.340 align:middle line:84%
we've got a nice, green
field to work with,

00:06:20.340 --> 00:06:22.110 align:middle line:84%
we have so many
tools to configure,

00:06:22.110 --> 00:06:28.530 align:middle line:84%
from as basic as the operating
system, to your editor,

00:06:28.530 --> 00:06:31.320 align:middle line:84%
to your debugger, the
version control system.

00:06:31.320 --> 00:06:34.590 align:middle line:84%
And that's not even getting
to actually launching anything

00:06:34.590 --> 00:06:37.570 align:middle line:90%
and maintaining anything.

00:06:37.570 --> 00:06:43.680 align:middle line:84%
So I did not know how well any
of my toolset that I was using

00:06:43.680 --> 00:06:47.970 align:middle line:84%
worked with assistive
technology until I tried.

00:06:47.970 --> 00:06:52.170 align:middle line:84%
And it turned out to be
extremely disappointing.

00:06:52.170 --> 00:06:57.890 align:middle line:84%
So, blind text is a very
popular editor, text editor,

00:06:57.890 --> 00:06:59.780 align:middle line:90%
in the development world.

00:06:59.780 --> 00:07:02.510 align:middle line:84%
And it does not
work with voiceover

00:07:02.510 --> 00:07:07.377 align:middle line:84%
at all, which I found
very surprising.

00:07:07.377 --> 00:07:10.720 align:middle line:90%


00:07:10.720 --> 00:07:17.380 align:middle line:84%
So when you think about
all of the different tools

00:07:17.380 --> 00:07:21.590 align:middle line:84%
that we make use when
developing technology,

00:07:21.590 --> 00:07:23.560 align:middle line:84%
they're often coming
from different companies.

00:07:23.560 --> 00:07:25.900 align:middle line:84%
They're coming from companies
with different levels

00:07:25.900 --> 00:07:28.320 align:middle line:90%
of commitment to accessibility.

00:07:28.320 --> 00:07:29.800 align:middle line:84%
And they're not
necessarily always

00:07:29.800 --> 00:07:33.130 align:middle line:90%
consistent in how they work.

00:07:33.130 --> 00:07:34.940 align:middle line:90%
So it's an uphill battle.

00:07:34.940 --> 00:07:42.830 align:middle line:84%
And so it struck me that,
while we make a big effort

00:07:42.830 --> 00:07:47.110 align:middle line:84%
to make the products
we build accessible,

00:07:47.110 --> 00:07:49.450 align:middle line:84%
we don't make the
processes that we

00:07:49.450 --> 00:07:53.250 align:middle line:90%
use to build them accessible.

00:07:53.250 --> 00:07:55.840 align:middle line:84%
Our development
practices themselves

00:07:55.840 --> 00:07:57.370 align:middle line:90%
are rather inaccessible.

00:07:57.370 --> 00:07:59.740 align:middle line:84%
And that's what I was
really struggling with,

00:07:59.740 --> 00:08:04.360 align:middle line:84%
having done as much as I
could to try to optimize

00:08:04.360 --> 00:08:05.860 align:middle line:90%
my development environment.

00:08:05.860 --> 00:08:09.460 align:middle line:90%


00:08:09.460 --> 00:08:12.670 align:middle line:90%
So, tooling isn't enough.

00:08:12.670 --> 00:08:17.320 align:middle line:84%
We need to do more to make the
entire experience of developing

00:08:17.320 --> 00:08:20.740 align:middle line:84%
more accessible, to close that
gap between the capabilities

00:08:20.740 --> 00:08:23.740 align:middle line:84%
of our body and our
development environment.

00:08:23.740 --> 00:08:27.120 align:middle line:90%


00:08:27.120 --> 00:08:29.840 align:middle line:84%
So if we do some
brainstorming and really think

00:08:29.840 --> 00:08:34.760 align:middle line:84%
about software development,
we engage in different modes

00:08:34.760 --> 00:08:37.220 align:middle line:90%
when creating software.

00:08:37.220 --> 00:08:43.669 align:middle line:84%
So I came up with a very
simplified version of stages

00:08:43.669 --> 00:08:44.960 align:middle line:90%
of software development.

00:08:44.960 --> 00:08:49.470 align:middle line:84%
And I'm sure everyone can
see the holes in them.

00:08:49.470 --> 00:08:51.470 align:middle line:90%
So the first is research.

00:08:51.470 --> 00:08:55.390 align:middle line:84%
What's been done on the problem
that I'm trying to tackle?

00:08:55.390 --> 00:09:00.330 align:middle line:84%
And what gaps in knowledge do
I have that I need to fill in?

00:09:00.330 --> 00:09:04.680 align:middle line:84%
If it's part of a larger
project that I'm adding to,

00:09:04.680 --> 00:09:07.950 align:middle line:84%
I need to read the
existing code to figure out

00:09:07.950 --> 00:09:09.630 align:middle line:90%
how my part is going to fit in.

00:09:09.630 --> 00:09:12.320 align:middle line:90%


00:09:12.320 --> 00:09:18.260 align:middle line:84%
Then we get into designing,
then implementing and debugging.

00:09:18.260 --> 00:09:21.590 align:middle line:84%
Because it never works
on the first try, ever.

00:09:21.590 --> 00:09:24.980 align:middle line:90%


00:09:24.980 --> 00:09:28.940 align:middle line:84%
So to make things a
little bit more simple,

00:09:28.940 --> 00:09:33.980 align:middle line:84%
I'm going to take designing and
debugging out of the mix mostly

00:09:33.980 --> 00:09:39.290 align:middle line:84%
because I'm still trying to
figure out that designing part.

00:09:39.290 --> 00:09:42.650 align:middle line:84%
And my answer to how to
make debugging accessible

00:09:42.650 --> 00:09:45.200 align:middle line:90%
is to not write bugs right now.

00:09:45.200 --> 00:09:50.750 align:middle line:84%
So, yeah, if you have
ideas, I am so open to them.

00:09:50.750 --> 00:09:53.790 align:middle line:90%


00:09:53.790 --> 00:09:56.120 align:middle line:84%
So our contrived example
that we're going to use

00:09:56.120 --> 00:10:02.030 align:middle line:84%
is to implement some vector math
according to a specification.

00:10:02.030 --> 00:10:05.120 align:middle line:90%
I love matrices.

00:10:05.120 --> 00:10:11.220 align:middle line:84%
And I use one by n
matrices all the time.

00:10:11.220 --> 00:10:14.945 align:middle line:90%
So that's my own personal bias.

00:10:14.945 --> 00:10:17.510 align:middle line:90%


00:10:17.510 --> 00:10:21.850 align:middle line:84%
So the first thing we do is
we do some research, right?

00:10:21.850 --> 00:10:22.990 align:middle line:90%
What do I know?

00:10:22.990 --> 00:10:25.930 align:middle line:90%
What do I need to know?

00:10:25.930 --> 00:10:29.630 align:middle line:90%
And where do I go to find it?

00:10:29.630 --> 00:10:34.020 align:middle line:84%
So this is the cover of my
very own, very well-worn

00:10:34.020 --> 00:10:35.580 align:middle line:90%
linear algebra textbook.

00:10:35.580 --> 00:10:37.748 align:middle line:90%
I'm very fond of it.

00:10:37.748 --> 00:10:39.540 align:middle line:84%
And as we're getting
started with research,

00:10:39.540 --> 00:10:43.920 align:middle line:84%
we want to figure out which
equations are relevant,

00:10:43.920 --> 00:10:48.740 align:middle line:84%
where do we find them, and,
because, mathematical notation

00:10:48.740 --> 00:10:56.540 align:middle line:84%
isn't always self-explanatory
to folks working in software,

00:10:56.540 --> 00:10:59.970 align:middle line:90%
what do they actually do?

00:10:59.970 --> 00:11:02.150 align:middle line:84%
So I'm really hoping that
one of the settings that

00:11:02.150 --> 00:11:06.220 align:middle line:84%
are enabled for the
screen share works,

00:11:06.220 --> 00:11:12.160 align:middle line:84%
I have the mathematical formula
for vector addition in a PDF.

00:11:12.160 --> 00:11:14.740 align:middle line:90%


00:11:14.740 --> 00:11:18.270 align:middle line:84%
And if this works, you'll
be able to hear it.

00:11:18.270 --> 00:11:21.430 align:middle line:90%


00:11:21.430 --> 00:11:23.740 align:middle line:84%
<v computer voice> U plus v equals 0 [INAUDIBLE]..

00:11:23.740 --> 00:11:27.310 align:middle line:90%


00:11:27.310 --> 00:11:29.290 align:middle line:84%
<v Julia Ferraioli> Can
someone raise their hand

00:11:29.290 --> 00:11:31.310 align:middle line:90%
if they heard that?

00:11:31.310 --> 00:11:32.190 align:middle line:90%
OK, cool.

00:11:32.190 --> 00:11:34.820 align:middle line:90%
Thank you.

00:11:34.820 --> 00:11:37.520 align:middle line:84%
So this is the equation
for vector addition

00:11:37.520 --> 00:11:42.950 align:middle line:84%
in lab tech with text to
speech reading it out.

00:11:42.950 --> 00:11:49.640 align:middle line:84%
So it's u plus v equals parens
u0 plus v0 all the way down

00:11:49.640 --> 00:11:56.810 align:middle line:84%
to u sub n minus 1 plus
v7 minus 1, end parens.

00:11:56.810 --> 00:12:02.900 align:middle line:84%
But I didn't get that out of
the reading of the equation.

00:12:02.900 --> 00:12:04.340 align:middle line:90%
That is not what I heard.

00:12:04.340 --> 00:12:07.220 align:middle line:84%
And I have carried
this countless times

00:12:07.220 --> 00:12:13.040 align:middle line:84%
and I just now realized
that when it says "un,"

00:12:13.040 --> 00:12:16.890 align:middle line:90%
it's actually u sub n.

00:12:16.890 --> 00:12:19.380 align:middle line:84%
Just got that, like
literally just now.

00:12:19.380 --> 00:12:21.650 align:middle line:90%
So, interesting.

00:12:21.650 --> 00:12:23.970 align:middle line:90%
OK.

00:12:23.970 --> 00:12:27.810 align:middle line:84%
So I took that equation
and I turned it into LaTeX.

00:12:27.810 --> 00:12:29.730 align:middle line:90%
It compiled it to PDF, right?

00:12:29.730 --> 00:12:31.970 align:middle line:90%
It's kind of contrived.

00:12:31.970 --> 00:12:35.540 align:middle line:84%
So some of the problems
that we may have heard

00:12:35.540 --> 00:12:37.980 align:middle line:84%
were, well, what did
that actually say?

00:12:37.980 --> 00:12:43.910 align:middle line:84%
Because I wasn't sure about
at least one of the components

00:12:43.910 --> 00:12:46.280 align:middle line:90%
until just now.

00:12:46.280 --> 00:12:48.380 align:middle line:90%
How do I translate that to code?

00:12:48.380 --> 00:12:51.800 align:middle line:90%


00:12:51.800 --> 00:12:58.580 align:middle line:84%
And how long is it going to
take me to learn one formula?

00:12:58.580 --> 00:13:00.620 align:middle line:90%
Right?

00:13:00.620 --> 00:13:02.578 align:middle line:84%
So let's go to
Wikipedia instead,

00:13:02.578 --> 00:13:03.620 align:middle line:90%
and see if that's better.

00:13:03.620 --> 00:13:10.710 align:middle line:90%


00:13:10.710 --> 00:13:12.210 align:middle line:84%
<v Computer Voice> Heading level three.

00:13:12.210 --> 00:13:14.377 align:middle line:84%
Addition and subtraction,
edit, further information,

00:13:14.377 --> 00:13:15.752 align:middle line:84%
vector space assume
not [? and ?]

00:13:15.752 --> 00:13:17.282 align:middle line:84%
b are not necessarily
equal vectors,

00:13:17.282 --> 00:13:19.740 align:middle line:84%
but that they may have different
magnitudes and directions.

00:13:19.740 --> 00:13:23.070 align:middle line:90%
The sum of a and b is.

00:13:23.070 --> 00:13:25.440 align:middle line:84%
Left brace or right brace
plus backslash [? math. ?]

00:13:25.440 --> 00:13:28.680 align:middle line:84%
Left brace b right brace
equals underscore left brace 1

00:13:28.680 --> 00:13:30.360 align:middle line:90%
right brace plus b underscore.

00:13:30.360 --> 00:13:32.880 align:middle line:84%
Left brace 1 right brace
backslash [? math. ?] Left

00:13:32.880 --> 00:13:34.590 align:middle line:90%
brace b right brace underscore.

00:13:34.590 --> 00:13:37.350 align:middle line:84%
Left brace 1 right brace
plus underscore left

00:13:37.350 --> 00:13:39.630 align:middle line:84%
brace to right brace
plus b underscore left

00:13:39.630 --> 00:13:42.150 align:middle line:84%
brace to brace backslash
[? math. ?] Left brace

00:13:42.150 --> 00:13:44.400 align:middle line:84%
e right brace
underscore left brace 2

00:13:44.400 --> 00:13:47.760 align:middle line:84%
right brace plus underscore
left brace 3 right brace plus b

00:13:47.760 --> 00:13:49.910 align:middle line:84%
underscore left
brace 3 right brace.

00:13:49.910 --> 00:13:53.760 align:middle line:84%
<v Julia Ferraioli> So I think
you may get the point here.

00:13:53.760 --> 00:13:57.900 align:middle line:84%
So Wikipedia actually has
all of their equations

00:13:57.900 --> 00:14:02.180 align:middle line:84%
as images and the
Alt text that they

00:14:02.180 --> 00:14:11.090 align:middle line:84%
use is actually the LaTeX source
used to compile the image.

00:14:11.090 --> 00:14:15.770 align:middle line:84%
So you heard the LaTeX source,
which if you know LaTeX really

00:14:15.770 --> 00:14:19.700 align:middle line:90%
well, might be OK.

00:14:19.700 --> 00:14:24.740 align:middle line:84%
But the majority of people
actually don't know LaTeX.

00:14:24.740 --> 00:14:26.900 align:middle line:84%
They either haven't
learned it yet

00:14:26.900 --> 00:14:28.400 align:middle line:90%
or they will never learn it.

00:14:28.400 --> 00:14:31.190 align:middle line:84%
And therefore, that
Alt text is going

00:14:31.190 --> 00:14:32.930 align:middle line:84%
to be completely
useless to them.

00:14:32.930 --> 00:14:35.550 align:middle line:90%


00:14:35.550 --> 00:14:38.280 align:middle line:84%
So what are some things
that we can take away

00:14:38.280 --> 00:14:40.860 align:middle line:90%
with this, from this?

00:14:40.860 --> 00:14:44.340 align:middle line:84%
So the first thing is that
pseudocode is probably

00:14:44.340 --> 00:14:48.060 align:middle line:84%
going to be your best
bet, especially if you're

00:14:48.060 --> 00:14:49.810 align:middle line:90%
going to be writing code.

00:14:49.810 --> 00:14:53.670 align:middle line:84%
So finding references
to equations

00:14:53.670 --> 00:14:56.970 align:middle line:84%
that are in pseudocode are
going to be preferable.

00:14:56.970 --> 00:15:00.120 align:middle line:90%


00:15:00.120 --> 00:15:02.580 align:middle line:90%
Don't go the Wikipedia route.

00:15:02.580 --> 00:15:04.320 align:middle line:84%
So if you're writing
a design doc,

00:15:04.320 --> 00:15:08.580 align:middle line:84%
if you're writing the
specification for what

00:15:08.580 --> 00:15:13.750 align:middle line:84%
you want somebody to
implement, don't use images,

00:15:13.750 --> 00:15:17.180 align:middle line:90%
especially without Alt text.

00:15:17.180 --> 00:15:20.605 align:middle line:84%
And this is kind of my tongue
in cheek recommendation.

00:15:20.605 --> 00:15:22.730 align:middle line:84%
But don't just sprinkle
some machine learning on it

00:15:22.730 --> 00:15:25.730 align:middle line:90%
and hope it sorts out itself.

00:15:25.730 --> 00:15:30.308 align:middle line:84%
Generally speaking,
that tends to go poorly.

00:15:30.308 --> 00:15:31.475 align:middle line:90%
And I like machine learning.

00:15:31.475 --> 00:15:34.040 align:middle line:90%


00:15:34.040 --> 00:15:37.830 align:middle line:84%
But let's assume we've got
our equations under our belts,

00:15:37.830 --> 00:15:40.340 align:middle line:84%
we've found our
reference pseudocode,

00:15:40.340 --> 00:15:42.200 align:middle line:90%
we understand what's going on.

00:15:42.200 --> 00:15:43.590 align:middle line:84%
We can move on to
the next stage,

00:15:43.590 --> 00:15:45.740 align:middle line:90%
which is actually reading code.

00:15:45.740 --> 00:15:49.100 align:middle line:90%


00:15:49.100 --> 00:15:51.920 align:middle line:84%
Reading code-- not even
editing or debugging--

00:15:51.920 --> 00:15:54.290 align:middle line:84%
can impose some issues
with screen readers.

00:15:54.290 --> 00:15:57.740 align:middle line:84%
And I wrote up a little
main program in Go

00:15:57.740 --> 00:16:03.601 align:middle line:84%
that will use the functions
that we want to implement.

00:16:03.601 --> 00:16:06.370 align:middle line:90%


00:16:06.370 --> 00:16:12.250 align:middle line:84%
So this is bad-ish
code, which I fully own.

00:16:12.250 --> 00:16:13.493 align:middle line:90%
And you'll hear why.

00:16:13.493 --> 00:16:14.910 align:middle line:84%
<v Julia Ferraioli> Package menu line.

00:16:14.910 --> 00:16:16.380 align:middle line:84%
New line in bold
left go new line.

00:16:16.380 --> 00:16:17.740 align:middle line:90%
Quote FMT quote new line.

00:16:17.740 --> 00:16:18.720 align:middle line:90%
Right go new line.

00:16:18.720 --> 00:16:19.610 align:middle line:90%
New line type vector.

00:16:19.610 --> 00:16:20.735 align:middle line:90%
Left bracket right bracket.

00:16:20.735 --> 00:16:21.960 align:middle line:90%
Float 64 new line.

00:16:21.960 --> 00:16:24.540 align:middle line:84%
New line func main right code
left code. left brace new line.

00:16:24.540 --> 00:16:27.250 align:middle line:84%
Vector comma, vector comma,
vector colon equals vector.

00:16:27.250 --> 00:16:28.130 align:middle line:90%
Left brace 1 comma.

00:16:28.130 --> 00:16:30.200 align:middle line:84%
2 comma 3 right
brace comma vector.

00:16:30.200 --> 00:16:33.310 align:middle line:84%
Left brace 3 comma 5 comma
6 right brace comma vector

00:16:33.310 --> 00:16:36.510 align:middle line:84%
left brace 7 backslash new line
comma 8 comma 9 right brace.

00:16:36.510 --> 00:16:38.490 align:middle line:84%
New line vector
comma, vector comma,

00:16:38.490 --> 00:16:40.660 align:middle line:84%
underscore equals SWP left
paren [INAUDIBLE] comma.

00:16:40.660 --> 00:16:41.880 align:middle line:90%
[INAUDIBLE] new line.

00:16:41.880 --> 00:16:42.930 align:middle line:90%
T [INAUDIBLE] comma.

00:16:42.930 --> 00:16:44.700 align:middle line:84%
Underscore colon equals
[INAUDIBLE] vex left paren.

00:16:44.700 --> 00:16:46.200 align:middle line:84%
Left bracket right
bracket vector.

00:16:46.200 --> 00:16:47.280 align:middle line:90%
Left brace [INAUDIBLE] comma.

00:16:47.280 --> 00:16:47.970 align:middle line:90%
[INAUDIBLE] comma.

00:16:47.970 --> 00:16:48.840 align:middle line:90%
[INAUDIBLE] right brace.

00:16:48.840 --> 00:16:50.260 align:middle line:84%
Dot dot dot right
paren new line.

00:16:50.260 --> 00:16:52.130 align:middle line:84%
End colon equals
[INAUDIBLE] new line.

00:16:52.130 --> 00:16:53.547 align:middle line:84%
<v Julia Ferraioli> So again, I'm not

00:16:53.547 --> 00:16:57.840 align:middle line:84%
going to go through
the entire recording,

00:16:57.840 --> 00:17:03.470 align:middle line:84%
but this is kind of
hard to understand

00:17:03.470 --> 00:17:05.599 align:middle line:84%
when we're listening
to the code and trying

00:17:05.599 --> 00:17:09.260 align:middle line:90%
to glean meaning from it.

00:17:09.260 --> 00:17:13.905 align:middle line:84%
For the record, I had named this
file vector underscore don't

00:17:13.905 --> 00:17:16.250 align:middle line:90%
dot go, because it is bad code.

00:17:16.250 --> 00:17:19.400 align:middle line:84%
And I wouldn't recommend
anybody write this.

00:17:19.400 --> 00:17:22.270 align:middle line:84%
I wrote-- writing bad
code intentionally

00:17:22.270 --> 00:17:23.980 align:middle line:90%
is a very interesting exercise.

00:17:23.980 --> 00:17:27.460 align:middle line:90%


00:17:27.460 --> 00:17:30.050 align:middle line:90%
There were some problems.

00:17:30.050 --> 00:17:33.650 align:middle line:84%
Voiceover is trying really
hard to say everything.

00:17:33.650 --> 00:17:35.900 align:middle line:84%
But it also thinks that
it's reading English.

00:17:35.900 --> 00:17:39.310 align:middle line:84%
And code is not a
spoken language.

00:17:39.310 --> 00:17:44.410 align:middle line:84%
If you ask somebody-- if you
ask five people to read code,

00:17:44.410 --> 00:17:46.210 align:middle line:84%
they're going to say
it different ways,

00:17:46.210 --> 00:17:49.900 align:middle line:84%
because their internal
narrative is different.

00:17:49.900 --> 00:17:53.560 align:middle line:90%
It was also really verbose.

00:17:53.560 --> 00:17:58.570 align:middle line:84%
You probably noticed that it's
very different than reading

00:17:58.570 --> 00:18:01.170 align:middle line:90%
a paper, for instance.

00:18:01.170 --> 00:18:03.040 align:middle line:84%
You heard all of
the punctuation.

00:18:03.040 --> 00:18:06.580 align:middle line:84%
You heard every new line
pronounced, because all of that

00:18:06.580 --> 00:18:09.620 align:middle line:90%
is really important.

00:18:09.620 --> 00:18:12.730 align:middle line:84%
I need to know if
there is a comma there.

00:18:12.730 --> 00:18:15.730 align:middle line:84%
I need to know if
I'm going to be

00:18:15.730 --> 00:18:18.190 align:middle line:84%
declaring an array of
something or if it's just

00:18:18.190 --> 00:18:19.610 align:middle line:90%
a single variable.

00:18:19.610 --> 00:18:21.760 align:middle line:84%
So I need everything
to be pronounced.

00:18:21.760 --> 00:18:25.690 align:middle line:90%


00:18:25.690 --> 00:18:28.330 align:middle line:84%
It's also kind of
hard to remember

00:18:28.330 --> 00:18:32.680 align:middle line:84%
all of the different elements
of the main function.

00:18:32.680 --> 00:18:35.620 align:middle line:84%
It's a lot to keep
in your own buffer.

00:18:35.620 --> 00:18:39.200 align:middle line:84%
It takes a lot of
time to read, but it's

00:18:39.200 --> 00:18:42.710 align:middle line:84%
hard to actually keep
things in your head,

00:18:42.710 --> 00:18:45.950 align:middle line:84%
especially when it's going
at an accelerated speed.

00:18:45.950 --> 00:18:49.740 align:middle line:90%


00:18:49.740 --> 00:18:50.910 align:middle line:90%
Where does this leave us?

00:18:50.910 --> 00:18:53.990 align:middle line:84%
Do we say, OK,
coding is not for me?

00:18:53.990 --> 00:18:55.560 align:middle line:90%
Of course not.

00:18:55.560 --> 00:18:57.650 align:middle line:90%
Of course not.

00:18:57.650 --> 00:19:02.863 align:middle line:84%
We learn to write code that
is itself more accessible.

00:19:02.863 --> 00:19:06.600 align:middle line:90%


00:19:06.600 --> 00:19:08.310 align:middle line:84%
These are the kind of
things that, again,

00:19:08.310 --> 00:19:11.190 align:middle line:84%
sat in the back of my mind
and I started unconsciously

00:19:11.190 --> 00:19:15.180 align:middle line:90%
enforcing in my own code.

00:19:15.180 --> 00:19:17.850 align:middle line:84%
Nothing is going to
look revolutionary.

00:19:17.850 --> 00:19:21.840 align:middle line:84%
These may even be practices
that you're already following.

00:19:21.840 --> 00:19:26.990 align:middle line:84%
But they may give you additional
reasons for continuing them.

00:19:26.990 --> 00:19:29.660 align:middle line:84%
Let's move on to
our implementation

00:19:29.660 --> 00:19:33.290 align:middle line:84%
stage and learn
a little bit more

00:19:33.290 --> 00:19:36.100 align:middle line:84%
about what accessible
code looks like.

00:19:36.100 --> 00:19:39.170 align:middle line:90%


00:19:39.170 --> 00:19:45.770 align:middle line:84%
The first lesson I've got is
grouping code blocks logically.

00:19:45.770 --> 00:19:50.560 align:middle line:84%
Here is a portion of the Main
function that we heard earlier.

00:19:50.560 --> 00:19:55.110 align:middle line:84%
We've got A, B, and C
being declared as vectors

00:19:55.110 --> 00:19:58.110 align:middle line:84%
and initialized
on the same line.

00:19:58.110 --> 00:20:01.290 align:middle line:84%
Then we go ahead
and we swap them.

00:20:01.290 --> 00:20:09.350 align:middle line:84%
We A and B. And we then
sum up A, B, and C.

00:20:09.350 --> 00:20:10.600 align:middle line:90%
You may see these underscores.

00:20:10.600 --> 00:20:13.580 align:middle line:84%
If you're not familiar
with Go, those

00:20:13.580 --> 00:20:15.030 align:middle line:90%
underscores swallow errors.

00:20:15.030 --> 00:20:17.760 align:middle line:90%


00:20:17.760 --> 00:20:20.320 align:middle line:84%
Just so you know, it's
not best practice,

00:20:20.320 --> 00:20:25.930 align:middle line:84%
but it would be a lot longer
if I had to handle every error.

00:20:25.930 --> 00:20:28.990 align:middle line:84%
That just means I'm going
to ignore it for now.

00:20:28.990 --> 00:20:32.060 align:middle line:90%
This is bad organization.

00:20:32.060 --> 00:20:35.950 align:middle line:84%
What would something
better look like?

00:20:35.950 --> 00:20:39.080 align:middle line:90%


00:20:39.080 --> 00:20:43.470 align:middle line:84%
This is going to be functionally
identical to the last slide.

00:20:43.470 --> 00:20:48.290 align:middle line:84%
I'm going to declare A
and B and initialize them

00:20:48.290 --> 00:20:50.170 align:middle line:90%
in the same line.

00:20:50.170 --> 00:20:51.430 align:middle line:90%
Then I'm going to swap them.

00:20:51.430 --> 00:20:54.240 align:middle line:90%
I'm operating on them.

00:20:54.240 --> 00:20:56.700 align:middle line:90%
Then I've got a new line.

00:20:56.700 --> 00:21:02.700 align:middle line:84%
Then I declare C. And
then I add them all up.

00:21:02.700 --> 00:21:05.580 align:middle line:84%
I'm going to say this is good
organization, even though it's

00:21:05.580 --> 00:21:08.150 align:middle line:90%
functionally identical.

00:21:08.150 --> 00:21:13.500 align:middle line:84%
Maybe that's because it's
functionally identical.

00:21:13.500 --> 00:21:15.690 align:middle line:90%
What are the lessons here?

00:21:15.690 --> 00:21:17.940 align:middle line:84%
Well, you want to
declare your variables

00:21:17.940 --> 00:21:20.940 align:middle line:84%
close to where they're
actually going to be used.

00:21:20.940 --> 00:21:24.330 align:middle line:84%
We moved the declaration
of C down to right

00:21:24.330 --> 00:21:27.940 align:middle line:84%
before we were actually
going to use it.

00:21:27.940 --> 00:21:30.970 align:middle line:84%
You want to make sure that the
context around your variables

00:21:30.970 --> 00:21:34.330 align:middle line:84%
and your functions aren't
lost by the time they

00:21:34.330 --> 00:21:36.750 align:middle line:90%
come into play.

00:21:36.750 --> 00:21:39.970 align:middle line:84%
The same goes for other types of
declarations, like interfaces,

00:21:39.970 --> 00:21:43.220 align:middle line:90%
structs, et cetera.

00:21:43.220 --> 00:21:47.420 align:middle line:84%
By grouping components
together logically,

00:21:47.420 --> 00:21:51.900 align:middle line:84%
you have to keep less in your
mental buffer, which is great

00:21:51.900 --> 00:21:53.880 align:middle line:90%
if you use a screen reader.

00:21:53.880 --> 00:21:57.030 align:middle line:84%
And you have to navigate
around the code base less

00:21:57.030 --> 00:22:00.060 align:middle line:84%
to find definitions
or declarations, which

00:22:00.060 --> 00:22:03.450 align:middle line:84%
is also great if you have
difficulties with fine motor

00:22:03.450 --> 00:22:06.390 align:middle line:90%
control.

00:22:06.390 --> 00:22:08.880 align:middle line:84%
Either way, you're
minimizing the amount

00:22:08.880 --> 00:22:14.600 align:middle line:84%
of navigation required to
comprehend a block of code.

00:22:14.600 --> 00:22:17.750 align:middle line:90%


00:22:17.750 --> 00:22:20.360 align:middle line:84%
Next lesson is about
variable names.

00:22:20.360 --> 00:22:21.200 align:middle line:90%
Keep them short.

00:22:21.200 --> 00:22:25.340 align:middle line:90%


00:22:25.340 --> 00:22:28.210 align:middle line:84%
Keep them short, which in
the Go program language

00:22:28.210 --> 00:22:29.300 align:middle line:90%
is encouraged anyway.

00:22:29.300 --> 00:22:32.140 align:middle line:90%


00:22:32.140 --> 00:22:41.450 align:middle line:84%
If we look at this declaration
of vector A, vector B vector,

00:22:41.450 --> 00:22:43.010 align:middle line:90%
it's not recommended.

00:22:43.010 --> 00:22:48.380 align:middle line:84%
Instead, use something
like A comma B vector.

00:22:48.380 --> 00:22:49.430 align:middle line:90%
Why?

00:22:49.430 --> 00:22:56.570 align:middle line:84%
Well, it's faster, first of
all, which is always a plus.

00:22:56.570 --> 00:23:00.840 align:middle line:84%
And you eliminate redundancy,
because we've already

00:23:00.840 --> 00:23:02.610 align:middle line:90%
said that A and B are vectors.

00:23:02.610 --> 00:23:04.920 align:middle line:84%
We don't need to repeat
that in the variable name.

00:23:04.920 --> 00:23:08.580 align:middle line:90%


00:23:08.580 --> 00:23:10.010 align:middle line:90%
It's also less effort to type.

00:23:10.010 --> 00:23:18.590 align:middle line:90%


00:23:18.590 --> 00:23:19.760 align:middle line:90%
It's less effort to type.

00:23:19.760 --> 00:23:22.610 align:middle line:84%
And the fewer times I
have to hit the Shift key,

00:23:22.610 --> 00:23:23.600 align:middle line:90%
I am a fan of that.

00:23:23.600 --> 00:23:27.250 align:middle line:90%


00:23:27.250 --> 00:23:30.880 align:middle line:84%
What may seem contradictory
to what I just said

00:23:30.880 --> 00:23:33.220 align:middle line:84%
is you should use
meaningful names.

00:23:33.220 --> 00:23:35.770 align:middle line:90%


00:23:35.770 --> 00:23:38.560 align:middle line:84%
Before, in our
bad main function,

00:23:38.560 --> 00:23:43.460 align:middle line:84%
I had the variable
names tVec and sVec,

00:23:43.460 --> 00:23:46.080 align:middle line:90%
which I don't recommend.

00:23:46.080 --> 00:23:50.210 align:middle line:84%
Instead, use something
like total and scaled.

00:23:50.210 --> 00:23:52.890 align:middle line:90%
They're more descriptive.

00:23:52.890 --> 00:23:54.960 align:middle line:84%
They reduce the amount
of cognitive load.

00:23:54.960 --> 00:23:58.860 align:middle line:84%
I don't have to go and find
where these variables are

00:23:58.860 --> 00:24:04.350 align:middle line:84%
actually used to understand
how they're going to be used.

00:24:04.350 --> 00:24:07.410 align:middle line:84%
You don't have to keep as
much context in your head

00:24:07.410 --> 00:24:10.980 align:middle line:90%
about what the variable does.

00:24:10.980 --> 00:24:13.860 align:middle line:84%
It's a light form of
self-documenting code, which

00:24:13.860 --> 00:24:17.160 align:middle line:90%
I'm ordinarily not a fan of.

00:24:17.160 --> 00:24:22.020 align:middle line:84%
But in this case, it
doesn't replace comments,

00:24:22.020 --> 00:24:25.850 align:middle line:90%
but it augments them.

00:24:25.850 --> 00:24:29.380 align:middle line:84%
It can also reduce the
amount of jumping around

00:24:29.380 --> 00:24:33.940 align:middle line:84%
that you have to do and help
distinguish important variables

00:24:33.940 --> 00:24:36.040 align:middle line:90%
from temporary variables.

00:24:36.040 --> 00:24:39.100 align:middle line:84%
So when we declared
A and B, they're

00:24:39.100 --> 00:24:42.700 align:middle line:84%
not going to stick
around much past usage.

00:24:42.700 --> 00:24:45.940 align:middle line:84%
However, note seeing
that total and scaled

00:24:45.940 --> 00:24:48.730 align:middle line:84%
are declared variable
names with descriptions

00:24:48.730 --> 00:24:50.480 align:middle line:90%
in and of themselves.

00:24:50.480 --> 00:24:52.000 align:middle line:84%
You can kind of
be sure that those

00:24:52.000 --> 00:24:53.500 align:middle line:84%
are going to come
back around and be

00:24:53.500 --> 00:24:55.050 align:middle line:90%
used at least more than once.

00:24:55.050 --> 00:24:59.040 align:middle line:90%


00:24:59.040 --> 00:25:01.950 align:middle line:90%
Use pronounceable names.

00:25:01.950 --> 00:25:04.290 align:middle line:84%
One thing you may have
noticed during the demo

00:25:04.290 --> 00:25:06.960 align:middle line:84%
is how screen readers
handle variable names, which

00:25:06.960 --> 00:25:08.402 align:middle line:90%
can be rough.

00:25:08.402 --> 00:25:10.690 align:middle line:84%
I spent about 15
minutes the other day

00:25:10.690 --> 00:25:14.200 align:middle line:84%
processing a full
request on GitHub,

00:25:14.200 --> 00:25:17.440 align:middle line:84%
wondering what my screen
reader was saying.

00:25:17.440 --> 00:25:22.450 align:middle line:84%
It was saying geethub
It kept repeating

00:25:22.450 --> 00:25:25.065 align:middle line:84%
throughout the full
request, geethub.

00:25:25.065 --> 00:25:26.440 align:middle line:84%
And I couldn't
figure out what it

00:25:26.440 --> 00:25:30.010 align:middle line:84%
was saying until I realized
it was pronouncing GitHub,

00:25:30.010 --> 00:25:36.460 align:middle line:84%
which is not a word apparently,
according to my screen reader.

00:25:36.460 --> 00:25:41.890 align:middle line:84%
I had to go and add
that to its vocabulary.

00:25:41.890 --> 00:25:44.650 align:middle line:84%
Make sure you're using
pronounceable names.

00:25:44.650 --> 00:25:49.780 align:middle line:84%
In our original program, we
had tVec again and the function

00:25:49.780 --> 00:25:51.670 align:middle line:90%
addAllVecs.

00:25:51.670 --> 00:25:55.360 align:middle line:84%
I'm going to say both of
those are not recommended.

00:25:55.360 --> 00:25:58.210 align:middle line:84%
And I'll get into
why addAllVecs isn't

00:25:58.210 --> 00:26:02.880 align:middle line:90%
recommended in just a second.

00:26:02.880 --> 00:26:07.470 align:middle line:84%
However, using total, again,
totally pronounceable,

00:26:07.470 --> 00:26:13.650 align:middle line:84%
pun intended, and add
[? or ?] [? sum, ?] both are

00:26:13.650 --> 00:26:14.490 align:middle line:90%
pronounceable.

00:26:14.490 --> 00:26:15.855 align:middle line:90%
They're both fairly short.

00:26:15.855 --> 00:26:18.440 align:middle line:90%


00:26:18.440 --> 00:26:23.310 align:middle line:84%
And there is no confusion as to
how they would be pronounced.

00:26:23.310 --> 00:26:27.240 align:middle line:90%
So screen readers can read them.

00:26:27.240 --> 00:26:29.340 align:middle line:84%
And they take less
time than pronouncing

00:26:29.340 --> 00:26:31.230 align:middle line:90%
a string of letters.

00:26:31.230 --> 00:26:32.740 align:middle line:90%
Don't make up words.

00:26:32.740 --> 00:26:40.590 align:middle line:84%
Think of how your variable
function names would be spoken.

00:26:40.590 --> 00:26:44.850 align:middle line:84%
And the reason I say not to
use something like addAllVecs

00:26:44.850 --> 00:26:49.350 align:middle line:84%
is because you want to
avoid concatenated words.

00:26:49.350 --> 00:26:53.310 align:middle line:84%
First of all, depending
on the letters

00:26:53.310 --> 00:26:55.260 align:middle line:84%
and how they're
being concatenated,

00:26:55.260 --> 00:26:59.940 align:middle line:84%
it might sound very different
than how you think it sounds.

00:26:59.940 --> 00:27:03.840 align:middle line:84%
For instance, if
your first word ended

00:27:03.840 --> 00:27:06.600 align:middle line:84%
with a T and the second
word started with an H,

00:27:06.600 --> 00:27:08.340 align:middle line:84%
it's going to
combine those, right?

00:27:08.340 --> 00:27:12.830 align:middle line:84%
Because that's how
English is combined.

00:27:12.830 --> 00:27:17.500 align:middle line:84%
And the other reason is
you don't necessarily--

00:27:17.500 --> 00:27:19.960 align:middle line:84%
when it does
pronounce addAllVecs,

00:27:19.960 --> 00:27:23.240 align:middle line:84%
it's not making it clear that
that's one function name.

00:27:23.240 --> 00:27:25.220 align:middle line:90%
You have to infer that.

00:27:25.220 --> 00:27:29.420 align:middle line:84%
And, yes, you probably
can, but again, it's

00:27:29.420 --> 00:27:32.900 align:middle line:84%
additional cognitive load that
you have to keep in your head.

00:27:32.900 --> 00:27:36.560 align:middle line:90%


00:27:36.560 --> 00:27:41.240 align:middle line:84%
The final lesson is to be
intentional about new lines.

00:27:41.240 --> 00:27:45.410 align:middle line:84%
This is something I found
myself making arguments

00:27:45.410 --> 00:27:48.110 align:middle line:84%
very vehemently
in my code reviews

00:27:48.110 --> 00:27:50.630 align:middle line:84%
for without really
understanding why,

00:27:50.630 --> 00:27:55.250 align:middle line:84%
until I took a step
back to introspect.

00:27:55.250 --> 00:27:59.280 align:middle line:84%
If we revisit, this is that
recommended organization,

00:27:59.280 --> 00:28:01.520 align:middle line:84%
we can also see the
usage of this new line

00:28:01.520 --> 00:28:06.980 align:middle line:84%
between swapping A and B
and the declaration of C.

00:28:06.980 --> 00:28:08.930 align:middle line:84%
I apologize if you can
hear my dog barking.

00:28:08.930 --> 00:28:11.900 align:middle line:90%


00:28:11.900 --> 00:28:12.740 align:middle line:90%
She's very loud.

00:28:12.740 --> 00:28:15.410 align:middle line:90%


00:28:15.410 --> 00:28:17.960 align:middle line:84%
New lines are something we
kind of pepper into our code

00:28:17.960 --> 00:28:20.010 align:middle line:84%
without really
thinking about them.

00:28:20.010 --> 00:28:23.300 align:middle line:84%
But they can be really
powerful signals.

00:28:23.300 --> 00:28:27.380 align:middle line:84%
I recommend that you treat
them like paragraph breaks.

00:28:27.380 --> 00:28:32.850 align:middle line:84%
If you use them too much, your
message is super fragmented.

00:28:32.850 --> 00:28:36.110 align:middle line:84%
If you use them too little, it
reads like a run-on sentence.

00:28:36.110 --> 00:28:39.830 align:middle line:90%
And the same is true for code.

00:28:39.830 --> 00:28:44.000 align:middle line:84%
You can use new
lines to help guide

00:28:44.000 --> 00:28:48.020 align:middle line:84%
the reader through various
sections of the code

00:28:48.020 --> 00:28:49.190 align:middle line:90%
and tell them--

00:28:49.190 --> 00:28:54.340 align:middle line:84%
and signify where new content
or functionality is starting.

00:28:54.340 --> 00:28:57.900 align:middle line:90%


00:28:57.900 --> 00:28:59.460 align:middle line:90%
Let's read better code.

00:28:59.460 --> 00:29:02.753 align:middle line:90%


00:29:02.753 --> 00:29:04.170 align:middle line:84%
<v Computer Voice> Package menu line.

00:29:04.170 --> 00:29:05.670 align:middle line:84%
New line import
left paren new line.

00:29:05.670 --> 00:29:06.970 align:middle line:90%
Quote FMT code new line.

00:29:06.970 --> 00:29:07.890 align:middle line:90%
Right paren new line.

00:29:07.890 --> 00:29:08.780 align:middle line:90%
New line [INAUDIBLE] vector.

00:29:08.780 --> 00:29:11.090 align:middle line:84%
Left bracket, right bracket.
[? Float 64 ?] new line.

00:29:11.090 --> 00:29:12.840 align:middle line:84%
New line func main
left paren right paren.

00:29:12.840 --> 00:29:13.500 align:middle line:90%
Left brace new line.

00:29:13.500 --> 00:29:14.000 align:middle line:90%
A comma.

00:29:14.000 --> 00:29:15.125 align:middle line:90%
B colon equals vector.

00:29:15.125 --> 00:29:16.000 align:middle line:90%
Left brace one comma.

00:29:16.000 --> 00:29:16.710 align:middle line:90%
Two comma.

00:29:16.710 --> 00:29:17.490 align:middle line:90%
Three right brace.

00:29:17.490 --> 00:29:18.950 align:middle line:84%
Comma vector left
brace four comma.

00:29:18.950 --> 00:29:19.740 align:middle line:90%
Five comma.

00:29:19.740 --> 00:29:20.580 align:middle line:90%
Six right brace.

00:29:20.580 --> 00:29:21.100 align:middle line:90%
New line.

00:29:21.100 --> 00:29:21.600 align:middle line:90%
A comma.

00:29:21.600 --> 00:29:22.110 align:middle line:90%
B comma.

00:29:22.110 --> 00:29:23.610 align:middle line:84%
Underscore equals
left paren comma.

00:29:23.610 --> 00:29:24.650 align:middle line:90%
B right paren new line.

00:29:24.650 --> 00:29:25.265 align:middle line:90%
FMT period.

00:29:25.265 --> 00:29:27.140 align:middle line:84%
Print left paren
[INAUDIBLE] vectors a colon.

00:29:27.140 --> 00:29:27.940 align:middle line:90%
Percent V comma.

00:29:27.940 --> 00:29:28.500 align:middle line:90%
B colon.

00:29:28.500 --> 00:29:30.000 align:middle line:84%
Percent B backslash
end quote comma.

00:29:30.000 --> 00:29:30.330 align:middle line:90%
A comma.

00:29:30.330 --> 00:29:31.380 align:middle line:90%
B right paren new line.

00:29:31.380 --> 00:29:32.912 align:middle line:90%
New line C colon equals vector.

00:29:32.912 --> 00:29:33.870 align:middle line:90%
Left brace seven comma.

00:29:33.870 --> 00:29:34.370 align:middle line:90%
Eight comma.

00:29:34.370 --> 00:29:35.160 align:middle line:90%
Nine right brace.

00:29:35.160 --> 00:29:36.270 align:middle line:90%
New line. [? Sum ?] comma.

00:29:36.270 --> 00:29:37.980 align:middle line:84%
Underscore colon equals
[INAUDIBLE] left paren.

00:29:37.980 --> 00:29:39.147 align:middle line:90%
Left bracket, right bracket.

00:29:39.147 --> 00:29:40.260 align:middle line:90%
Vector left brace a comma.

00:29:40.260 --> 00:29:40.760 align:middle line:90%
B comma.

00:29:40.760 --> 00:29:41.515 align:middle line:90%
C right brace.

00:29:41.515 --> 00:29:42.890 align:middle line:84%
Dot dot dot right
paren new line.

00:29:42.890 --> 00:29:44.020 align:middle line:90%
FMT--

00:29:44.020 --> 00:29:46.790 align:middle line:84%
<v Julia Ferraioli> So while that might not

00:29:46.790 --> 00:29:51.320 align:middle line:84%
have been as easy
as we would like,

00:29:51.320 --> 00:29:54.320 align:middle line:84%
this is better and
easier to understand

00:29:54.320 --> 00:29:56.380 align:middle line:90%
than our original main program.

00:29:56.380 --> 00:30:03.200 align:middle line:84%
It would be even easier if
we did it in a true voiceover

00:30:03.200 --> 00:30:07.580 align:middle line:84%
fashion, where we're
interacting with the code.

00:30:07.580 --> 00:30:11.090 align:middle line:84%
All of these recommendations
that I've made

00:30:11.090 --> 00:30:14.510 align:middle line:84%
help reduce the cognitive
load that a person has

00:30:14.510 --> 00:30:19.070 align:middle line:84%
to keep in mind when hearing
their code or their colleague's

00:30:19.070 --> 00:30:21.690 align:middle line:90%
code.

00:30:21.690 --> 00:30:24.330 align:middle line:90%
And they're not revolutionary.

00:30:24.330 --> 00:30:25.080 align:middle line:90%
They're just tips.

00:30:25.080 --> 00:30:27.890 align:middle line:90%


00:30:27.890 --> 00:30:31.230 align:middle line:84%
Accessible code is
actually achievable.

00:30:31.230 --> 00:30:33.000 align:middle line:90%
We can build on this.

00:30:33.000 --> 00:30:37.190 align:middle line:84%
We can come up with
other best practices that

00:30:37.190 --> 00:30:40.670 align:middle line:84%
will help us make the
development process

00:30:40.670 --> 00:30:43.250 align:middle line:90%
itself more accessible.

00:30:43.250 --> 00:30:46.730 align:middle line:84%
That augmented with
accessible tooling

00:30:46.730 --> 00:30:50.420 align:middle line:84%
makes the whole
thing much easier.

00:30:50.420 --> 00:30:54.500 align:middle line:84%
I wanted to highlight
some references.

00:30:54.500 --> 00:30:56.360 align:middle line:84%
This is actually
the wrong transcript

00:30:56.360 --> 00:30:58.170 align:middle line:84%
because I just
modified the talk.

00:30:58.170 --> 00:31:00.650 align:middle line:90%
So I apologize.

00:31:00.650 --> 00:31:04.490 align:middle line:84%
But there is a
lightning talk at PyCon

00:31:04.490 --> 00:31:07.070 align:middle line:84%
a couple of years
ago on code style

00:31:07.070 --> 00:31:10.870 align:middle line:84%
for blind programmers,
which was interesting.

00:31:10.870 --> 00:31:14.360 align:middle line:84%
And I highly recommend
watching that.

00:31:14.360 --> 00:31:20.060 align:middle line:84%
Here at Google, Emacspeak
was developed by TV Roman.

00:31:20.060 --> 00:31:26.510 align:middle line:84%
And you can install that for
Emacs if you're an Emacs user.

00:31:26.510 --> 00:31:29.290 align:middle line:90%
It's very powerful.

00:31:29.290 --> 00:31:33.130 align:middle line:84%
And there is a blog post on
tools for the blind programmer

00:31:33.130 --> 00:31:35.980 align:middle line:84%
and some information on curb
cuts, which probably are

00:31:35.980 --> 00:31:39.190 align:middle line:90%
no surprises to anybody here.

00:31:39.190 --> 00:31:44.330 align:middle line:84%
So thank you so much
for having me talk.

00:31:44.330 --> 00:31:46.908 align:middle line:84%
I think that was
30 minutes exactly.

00:31:46.908 --> 00:31:48.200 align:middle line:90%
<v Brianna Blaser> I think it was.

00:31:48.200 --> 00:31:49.480 align:middle line:90%
Thanks, Julia for sharing.

00:31:49.480 --> 00:31:51.020 align:middle line:90%
That was great.

00:31:51.020 --> 00:31:53.658 align:middle line:84%
Does anybody have any questions
that they'd like to ask?

00:31:53.658 --> 00:31:55.200 align:middle line:84%
<v Richard Ladner> Yes, this is Richard.

00:31:55.200 --> 00:31:55.863 align:middle line:90%
Hi Julia.

00:31:55.863 --> 00:31:57.030 align:middle line:90%
<v Julia Ferraioli> Hi Richard.

00:31:57.030 --> 00:31:58.130 align:middle line:84%
<v Richard Ladner> Good to see you again.

00:31:58.130 --> 00:31:59.172 align:middle line:90%
<v Julia Ferraioli> You too.

00:31:59.172 --> 00:32:01.010 align:middle line:84%
<v Richard Ladner> Yeah,
that was interesting.

00:32:01.010 --> 00:32:04.456 align:middle line:84%
And I have to look
at those references.

00:32:04.456 --> 00:32:07.760 align:middle line:84%
Are we going to have access
to your slides somehow?

00:32:07.760 --> 00:32:10.267 align:middle line:90%
<v Julia Ferraioli> Sure, yes.

00:32:10.267 --> 00:32:11.850 align:middle line:84%
<v Richard Ladner> So a couple of things.

00:32:11.850 --> 00:32:16.730 align:middle line:84%
One is that there is also
the issue of not just reading

00:32:16.730 --> 00:32:19.520 align:middle line:90%
code, but navigating a code.

00:32:19.520 --> 00:32:23.150 align:middle line:84%
You explored that
problem as well.

00:32:23.150 --> 00:32:26.630 align:middle line:84%
That's actually
hard for everyone.

00:32:26.630 --> 00:32:29.450 align:middle line:84%
It's definitely harder
for people with low vision

00:32:29.450 --> 00:32:30.740 align:middle line:90%
or blind.

00:32:30.740 --> 00:32:32.510 align:middle line:90%
<v Julia Ferraioli> Yes, I noticed.

00:32:32.510 --> 00:32:38.480 align:middle line:84%
I can attribute many a headache
to just navigating code.

00:32:38.480 --> 00:32:44.450 align:middle line:84%
I haven't explored that in as
much depth, to be quite honest.

00:32:44.450 --> 00:32:47.330 align:middle line:84%
If you have pointers, I would
love to hear about them.

00:32:47.330 --> 00:32:53.590 align:middle line:84%
<v Richard Ladner> One I put
it in the chat, Code Talk.

00:32:53.590 --> 00:32:57.360 align:middle line:84%
And that was developed
at Microsoft Research.

00:32:57.360 --> 00:33:02.790 align:middle line:84%
And the main author
is actually blind--

00:33:02.790 --> 00:33:05.010 align:middle line:84%
Venkatesh and he's
a PhD student here

00:33:05.010 --> 00:33:07.150 align:middle line:90%
at University of Washington.

00:33:07.150 --> 00:33:09.880 align:middle line:90%
So I got to know him.

00:33:09.880 --> 00:33:18.320 align:middle line:84%
And their approach is more like
a accessible IDE with tools

00:33:18.320 --> 00:33:21.260 align:middle line:84%
to help navigation
and stuff like that.

00:33:21.260 --> 00:33:22.980 align:middle line:84%
I don't know how
available it is.

00:33:22.980 --> 00:33:25.760 align:middle line:90%
Maybe Stefik knows.

00:33:25.760 --> 00:33:29.628 align:middle line:84%
But that might be something to
look at for some inspiration.

00:33:29.628 --> 00:33:32.045 align:middle line:84%
<v Julia Ferraioli> Yes, I look
forward to reading the paper.

00:33:32.045 --> 00:33:35.910 align:middle line:90%


00:33:35.910 --> 00:33:41.870 align:middle line:84%
Because of how we
develop here at Google,

00:33:41.870 --> 00:33:44.030 align:middle line:84%
I was rather
limited in the tools

00:33:44.030 --> 00:33:48.690 align:middle line:84%
that I have available
to me to actually use.

00:33:48.690 --> 00:33:50.720 align:middle line:84%
So I was focusing
primarily on how

00:33:50.720 --> 00:33:56.660 align:middle line:84%
we can write code that
can aid in accessibility.

00:33:56.660 --> 00:33:59.850 align:middle line:84%
But that's a really good paper
that I hope everyone checks

00:33:59.850 --> 00:34:00.350 align:middle line:90%
out.

00:34:00.350 --> 00:34:02.568 align:middle line:90%


00:34:02.568 --> 00:34:04.610 align:middle line:84%
<v Richard Ladner> Maybe Stefik can say a little bit

00:34:04.610 --> 00:34:08.090 align:middle line:84%
about the new IDE for
the Quorum language,

00:34:08.090 --> 00:34:10.100 align:middle line:84%
which might have some
ideas on that as well.

00:34:10.100 --> 00:34:12.722 align:middle line:90%


00:34:12.722 --> 00:34:15.407 align:middle line:84%
<v Andreas Stefik> Sure, I
have some questions as well.

00:34:15.407 --> 00:34:17.199 align:middle line:84%
But before I do, just
let me say thank you,

00:34:17.199 --> 00:34:20.620 align:middle line:84%
because I think it's
awesome that people

00:34:20.620 --> 00:34:22.659 align:middle line:90%
are thinking about this issue.

00:34:22.659 --> 00:34:24.909 align:middle line:84%
I know enough blind
developers nowadays

00:34:24.909 --> 00:34:27.310 align:middle line:84%
that want to invent
technologies.

00:34:27.310 --> 00:34:31.630 align:middle line:84%
I really appreciated what you
said that for that community

00:34:31.630 --> 00:34:33.850 align:middle line:84%
to make the technologies
better for themselves,

00:34:33.850 --> 00:34:35.980 align:middle line:84%
they must be able
to invent things.

00:34:35.980 --> 00:34:37.630 align:middle line:84%
And as such, the
development tools

00:34:37.630 --> 00:34:40.193 align:middle line:84%
must be accessible in
order to accomplish that.

00:34:40.193 --> 00:34:41.110 align:middle line:90%
You kind of said that.

00:34:41.110 --> 00:34:44.320 align:middle line:84%
I've thought that for
a long time as well.

00:34:44.320 --> 00:34:46.500 align:middle line:84%
I appreciated that
sentiment from you.

00:34:46.500 --> 00:34:47.962 align:middle line:90%
<v Julia Ferraioli> Thank you.

00:34:47.962 --> 00:34:49.670 align:middle line:84%
<v Andreas Stefik> So a
couple of questions.

00:34:49.670 --> 00:34:54.540 align:middle line:84%
Number one is, I know some blind
developers that work at Google.

00:34:54.540 --> 00:34:56.590 align:middle line:84%
And I know, without
naming any names,

00:34:56.590 --> 00:34:58.540 align:middle line:84%
I know that they have
chronic difficulties,

00:34:58.540 --> 00:35:00.970 align:middle line:90%
actually doing work.

00:35:00.970 --> 00:35:03.820 align:middle line:84%
Do you know if Google's doing
anything on this in terms of,

00:35:03.820 --> 00:35:07.640 align:middle line:84%
are they making any progress on,
for example, making Android--

00:35:07.640 --> 00:35:10.930 align:middle line:84%
I know Android Studio
says it's NVDA accessible,

00:35:10.930 --> 00:35:12.070 align:middle line:90%
but it's actually not.

00:35:12.070 --> 00:35:13.028 align:middle line:90%
It doesn't really work.

00:35:13.028 --> 00:35:14.778 align:middle line:84%
Do you know if they're
making any progress

00:35:14.778 --> 00:35:15.940 align:middle line:90%
on that sort of thing?

00:35:15.940 --> 00:35:19.770 align:middle line:84%
<v Julia Ferraioli> I
don't know specifically.

00:35:19.770 --> 00:35:23.020 align:middle line:84%
Unfortunately, I had
to take a step back

00:35:23.020 --> 00:35:31.630 align:middle line:84%
from full-time development
myself due to my issues.

00:35:31.630 --> 00:35:37.030 align:middle line:84%
I know that they're very sincere
and passionate folks at Google

00:35:37.030 --> 00:35:39.370 align:middle line:84%
trying to make products
more accessible

00:35:39.370 --> 00:35:48.860 align:middle line:84%
and to make accessibility
a higher priority for teams

00:35:48.860 --> 00:35:51.950 align:middle line:90%
across the board.

00:35:51.950 --> 00:35:55.610 align:middle line:84%
But as I think all
of us are aware,

00:35:55.610 --> 00:35:58.755 align:middle line:84%
accessibility is too often
an afterthought for people.

00:35:58.755 --> 00:35:59.630 align:middle line:90%
<v Andreas Stefik> Yeah.

00:35:59.630 --> 00:36:01.385 align:middle line:90%
It's also really hard sometimes.

00:36:01.385 --> 00:36:03.113 align:middle line:84%
<v Julia Ferraioli>
It is really hard.

00:36:03.113 --> 00:36:05.030 align:middle line:84%
<v Andreas Stefik> It's not
like oftentimes, even

00:36:05.030 --> 00:36:06.572 align:middle line:84%
with really good
intentions, it's not

00:36:06.572 --> 00:36:08.660 align:middle line:84%
easy to just flip
a switch and then

00:36:08.660 --> 00:36:10.890 align:middle line:90%
hey, it's all accessible now.

00:36:10.890 --> 00:36:13.340 align:middle line:90%
There's a lot of work.

00:36:13.340 --> 00:36:15.200 align:middle line:90%
I have one more question.

00:36:15.200 --> 00:36:18.920 align:middle line:84%
But also, I'll do
Richard's request first.

00:36:18.920 --> 00:36:21.585 align:middle line:84%
So we've developed a technology
that's called Quorum.

00:36:21.585 --> 00:36:24.300 align:middle line:84%
It's a programming language
that is used a lot at School

00:36:24.300 --> 00:36:25.580 align:middle line:90%
for the Blind.

00:36:25.580 --> 00:36:28.970 align:middle line:84%
But we've developed a new
IDE for it, basically,

00:36:28.970 --> 00:36:33.200 align:middle line:84%
that is based on
a technology that

00:36:33.200 --> 00:36:38.420 align:middle line:84%
makes it so that all of 3D and
2D graphics can be accessible.

00:36:38.420 --> 00:36:40.940 align:middle line:84%
If you have a text
box, that's accessible.

00:36:40.940 --> 00:36:43.370 align:middle line:84%
If you have a 3D spinning
dragon, that's accessible.

00:36:43.370 --> 00:36:45.530 align:middle line:90%
It doesn't really matter.

00:36:45.530 --> 00:36:47.660 align:middle line:84%
How that works-- I know
that sounds sort of nuts,

00:36:47.660 --> 00:36:49.660 align:middle line:84%
but I swear to God
that it actually works,

00:36:49.660 --> 00:36:51.380 align:middle line:90%
and that's solved.

00:36:51.380 --> 00:36:55.200 align:middle line:84%
But interestingly, one of
the things you mention,

00:36:55.200 --> 00:36:57.740 align:middle line:84%
which is my actual
question, is that you

00:36:57.740 --> 00:37:01.190 align:middle line:84%
talked about this concept
of a debugging technology.

00:37:01.190 --> 00:37:03.710 align:middle line:84%
Well actually, as it happens,
on this new technology

00:37:03.710 --> 00:37:09.530 align:middle line:84%
there's a method by which you
can do explicit screen reader

00:37:09.530 --> 00:37:13.130 align:middle line:84%
call downs, and then connect
it through a JDI bridge, which

00:37:13.130 --> 00:37:15.050 align:middle line:84%
would actually work
both for Google products

00:37:15.050 --> 00:37:19.280 align:middle line:84%
and for our product, which would
allow you as you execute code

00:37:19.280 --> 00:37:21.170 align:middle line:84%
to send JDI requests,
which would then

00:37:21.170 --> 00:37:24.408 align:middle line:84%
get sent down to represent what
the code did during that time.

00:37:24.408 --> 00:37:26.700 align:middle line:84%
Like, this function was
called, or something like that.

00:37:26.700 --> 00:37:29.180 align:middle line:84%
But nobody really
knows exactly what

00:37:29.180 --> 00:37:30.860 align:middle line:90%
these debuggers should say.

00:37:30.860 --> 00:37:33.170 align:middle line:84%
However, if you built
it into Quorum Studio,

00:37:33.170 --> 00:37:35.010 align:middle line:90%
you could do that.

00:37:35.010 --> 00:37:37.020 align:middle line:90%
<v Julia Ferraioli> Interesting.

00:37:37.020 --> 00:37:38.100 align:middle line:90%
That's super cool.

00:37:38.100 --> 00:37:39.180 align:middle line:90%
I need to check that out.

00:37:39.180 --> 00:37:41.640 align:middle line:84%
<v Andreas Stefik> Yeah, so
happy to send links and stuff

00:37:41.640 --> 00:37:44.450 align:middle line:84%
or talk more or
something like that too.

00:37:44.450 --> 00:37:46.740 align:middle line:84%
But actually, just
saying that I think

00:37:46.740 --> 00:37:49.350 align:middle line:84%
that actually is possible, that
idea that you kind of said off

00:37:49.350 --> 00:37:50.610 align:middle line:90%
the cuff.

00:37:50.610 --> 00:37:53.460 align:middle line:84%
<v Julia Ferraioli> Yes,
I think it's possible.

00:37:53.460 --> 00:37:56.582 align:middle line:84%
I just didn't have any
good approaches to it.

00:37:56.582 --> 00:37:58.290 align:middle line:84%
<v Andreas Stefik> Actually, my dissertation

00:37:58.290 --> 00:38:01.890 align:middle line:84%
was on the debuggers
for the blind.

00:38:01.890 --> 00:38:04.090 align:middle line:84%
I've thought about this
problem a great deal.

00:38:04.090 --> 00:38:07.590 align:middle line:84%
And the trick, though was always
getting it to commercial scale,

00:38:07.590 --> 00:38:09.820 align:middle line:84%
because you're talking
about speech engines.

00:38:09.820 --> 00:38:11.880 align:middle line:84%
And the problem is that
you get double speaking

00:38:11.880 --> 00:38:13.560 align:middle line:90%
and all sorts of stuff.

00:38:13.560 --> 00:38:16.470 align:middle line:84%
Whereas, a lot of the commands
that are built and technically

00:38:16.470 --> 00:38:18.180 align:middle line:84%
for screen readers
to do extra talking,

00:38:18.180 --> 00:38:21.570 align:middle line:84%
like ARIA and these things,
these specs happened way later.

00:38:21.570 --> 00:38:25.170 align:middle line:84%
So they weren't really possible
until the last few years.

00:38:25.170 --> 00:38:28.050 align:middle line:84%
<v Julia Ferraioli> Yes, and
just to give a little bit

00:38:28.050 --> 00:38:33.900 align:middle line:84%
more context on my end, my
development environment,

00:38:33.900 --> 00:38:35.640 align:middle line:84%
the actual development
environment,

00:38:35.640 --> 00:38:41.450 align:middle line:84%
is in a data center somewhere
that I connect over SSH.

00:38:41.450 --> 00:38:47.360 align:middle line:84%
And my Emacs is running in
that data center, not locally.

00:38:47.360 --> 00:38:50.770 align:middle line:84%
I tried to run Emacs in
Emacs to use Emacs speak.

00:38:50.770 --> 00:38:51.950 align:middle line:90%
That didn't go so well.

00:38:51.950 --> 00:38:55.790 align:middle line:90%


00:38:55.790 --> 00:38:58.520 align:middle line:84%
The toolset that I
had available to me

00:38:58.520 --> 00:39:04.670 align:middle line:84%
was pretty limited, unless I
switched to developing entire--

00:39:04.670 --> 00:39:08.387 align:middle line:84%
like, not using corporate
technologies at all, which--

00:39:08.387 --> 00:39:09.470 align:middle line:90%
<v Andreas Stefik> It's hard.

00:39:09.470 --> 00:39:12.737 align:middle line:84%
<v Julia Ferraioli> Well, it means
that I need a different job.

00:39:12.737 --> 00:39:14.570 align:middle line:84%
<v Andreas Stefik> One of
my friends at Google,

00:39:14.570 --> 00:39:15.710 align:middle line:90%
that's in the same--

00:39:15.710 --> 00:39:17.900 align:middle line:84%
he says the same
thing, basically.

00:39:17.900 --> 00:39:19.540 align:middle line:90%
It's just tough.

00:39:19.540 --> 00:39:21.380 align:middle line:84%
And his workflow is
basically the same

00:39:21.380 --> 00:39:24.730 align:middle line:90%
as what you just said too.

00:39:24.730 --> 00:39:25.750 align:middle line:90%
<v Julia Ferraioli> Yeah.

00:39:25.750 --> 00:39:27.082 align:middle line:90%
Emacs on Emacs.

00:39:27.082 --> 00:39:28.500 align:middle line:90%
Hmm.

00:39:28.500 --> 00:39:30.500 align:middle line:84%
<v Andreas Stefik> Anyway,
thank you for your talk.

00:39:30.500 --> 00:39:32.600 align:middle line:84%
That's just one thing
I wanted to mention.

00:39:32.600 --> 00:39:33.725 align:middle line:90%
<v Julia Ferraioli> Thank you.

00:39:33.725 --> 00:39:35.695 align:middle line:84%
I would love to
get links to that.

00:39:35.695 --> 00:39:37.070 align:middle line:84%
<v Andreas Stefik> Yeah, no problem.

00:39:37.070 --> 00:39:40.708 align:middle line:84%
We have s public beta literally
going out literally tomorrow.

00:39:40.708 --> 00:39:41.750 align:middle line:90%
<v Julia Ferraioli> Awesome.

00:39:41.750 --> 00:39:43.917 align:middle line:84%
<v Andreas Stefik> So it's
sort of hot off the presses.

00:39:43.917 --> 00:39:46.850 align:middle line:84%
The actual 3D technology, while
it's done, it's not in beta.

00:39:46.850 --> 00:39:49.940 align:middle line:84%
But I'm happy to give you a
demo or something sometime.

00:39:49.940 --> 00:39:50.790 align:middle line:90%
Oh wait, no.

00:39:50.790 --> 00:39:55.120 align:middle line:84%
Brianna has a schedule because
we're going to do a talk on it

00:39:55.120 --> 00:39:55.910 align:middle line:90%
in January.

00:39:55.910 --> 00:39:57.910 align:middle line:90%
Is that right?

00:39:57.910 --> 00:40:00.445 align:middle line:84%
<v Brianna Blaser> Yeah,
it's in January.

00:40:00.445 --> 00:40:01.820 align:middle line:84%
I have to look up
the exact date,

00:40:01.820 --> 00:40:03.695 align:middle line:84%
but I think it's about
the middle of January.

00:40:03.695 --> 00:40:05.690 align:middle line:84%
I'll look and put
it in the chat.

00:40:05.690 --> 00:40:09.170 align:middle line:84%
<v Julia Ferraioli> Yes,
and I know that there's

00:40:09.170 --> 00:40:12.700 align:middle line:84%
an open source project by
Google called Science Journal.

00:40:12.700 --> 00:40:14.780 align:middle line:90%
It's aimed at kids.

00:40:14.780 --> 00:40:18.500 align:middle line:90%
And I needed to look at this.

00:40:18.500 --> 00:40:23.550 align:middle line:84%
But they said that
they found a way to--

00:40:23.550 --> 00:40:28.130 align:middle line:84%
or they found a
method to make charts

00:40:28.130 --> 00:40:33.840 align:middle line:84%
and some of the interactive
graphs accessible.

00:40:33.840 --> 00:40:35.840 align:middle line:84%
And I was always curious
about how they do that.

00:40:35.840 --> 00:40:37.890 align:middle line:84%
I don't actually have
useful information there.

00:40:37.890 --> 00:40:41.960 align:middle line:84%
But I know that
it's open sourced.

00:40:41.960 --> 00:40:44.390 align:middle line:84%
So it might be something
interesting to look

00:40:44.390 --> 00:40:45.385 align:middle line:90%
into as well.

00:40:45.385 --> 00:40:46.760 align:middle line:84%
<v Andreas Stefik> What's it called?

00:40:46.760 --> 00:40:48.135 align:middle line:84%
<v Julia Ferraioli>
Science Journal.

00:40:48.135 --> 00:40:52.960 align:middle line:90%


00:40:52.960 --> 00:40:57.890 align:middle line:84%
And I can provide a link
to that later as well.

00:40:57.890 --> 00:41:01.520 align:middle line:84%
<v Andreas Stefik> Is it Science
Journal dot with google.com?

00:41:01.520 --> 00:41:02.440 align:middle line:90%
<v Julia Ferraioli> Yep.

00:41:02.440 --> 00:41:02.800 align:middle line:90%
<v Andreas Stefik> OK, cool.

00:41:02.800 --> 00:41:03.550 align:middle line:90%
I'll check it out.

00:41:03.550 --> 00:41:05.410 align:middle line:90%
Thank you.

00:41:05.410 --> 00:41:08.440 align:middle line:84%
That link that Brianna
sent, quorumlanguage.com

00:41:08.440 --> 00:41:12.490 align:middle line:90%
shows a bunch of the stuff.

00:41:12.490 --> 00:41:14.590 align:middle line:84%
In terms of the language,
it's interesting to hear

00:41:14.590 --> 00:41:17.710 align:middle line:84%
you talk about
Go, because Go has

00:41:17.710 --> 00:41:21.060 align:middle line:84%
a lot of extra little
esoteric characters.

00:41:21.060 --> 00:41:24.070 align:middle line:84%
And I can only imagine
if you're 14, 15

00:41:24.070 --> 00:41:26.050 align:middle line:84%
and you have all those
extra little characters.

00:41:26.050 --> 00:41:28.592 align:middle line:84%
Some of them don't even read,
depending on your screen reader

00:41:28.592 --> 00:41:30.430 align:middle line:90%
settings and stuff.

00:41:30.430 --> 00:41:33.910 align:middle line:84%
Have you considered at all
contacting the Go team to get

00:41:33.910 --> 00:41:35.680 align:middle line:90%
them to change the language?

00:41:35.680 --> 00:41:38.113 align:middle line:84%
I'm sure that's not
political at all.

00:41:38.113 --> 00:41:39.280 align:middle line:90%
<v Julia Ferraioli> It's funny.

00:41:39.280 --> 00:41:42.300 align:middle line:84%
The first time I
gave this talk, I

00:41:42.300 --> 00:41:45.400 align:middle line:84%
was keynoting GopherCon,
which is their conference.

00:41:45.400 --> 00:41:46.720 align:middle line:90%
<v Andreas Stefik> Perfect.

00:41:46.720 --> 00:41:49.150 align:middle line:84%
<v Julia Ferraioli> With all of
the Go team sitting basically

00:41:49.150 --> 00:41:51.170 align:middle line:90%
in the front row.

00:41:51.170 --> 00:41:55.750 align:middle line:84%
So a lot of what
Go does is enforced

00:41:55.750 --> 00:42:05.740 align:middle line:84%
by a method called Go format,
which basically takes your code

00:42:05.740 --> 00:42:08.220 align:middle line:90%
and formats it for you.

00:42:08.220 --> 00:42:10.360 align:middle line:84%
So we were talking
about incorporating

00:42:10.360 --> 00:42:13.600 align:middle line:84%
some of these recommendations
into that tool, which

00:42:13.600 --> 00:42:16.450 align:middle line:90%
is released by the Go team.

00:42:16.450 --> 00:42:18.820 align:middle line:84%
Of course, some
of that is harder

00:42:18.820 --> 00:42:21.800 align:middle line:84%
to do, especially
the new [? lines. ?]

00:42:21.800 --> 00:42:27.270 align:middle line:84%
But they took the feedback,
and they're incorporating it

00:42:27.270 --> 00:42:30.142 align:middle line:84%
into the style guide
that they have.

00:42:30.142 --> 00:42:31.350 align:middle line:90%
<v Andreas Stefik> That's great.

00:42:31.350 --> 00:42:34.430 align:middle line:84%
<v Julia Ferraioli> Yes, I'm
lucky that I have that channel.

00:42:34.430 --> 00:42:38.032 align:middle line:90%
I realize that's a privilege.

00:42:38.032 --> 00:42:40.490 align:middle line:84%
<v Andreas Stefik> Yeah, because
I know on the Quorum project,

00:42:40.490 --> 00:42:42.200 align:middle line:84%
we always use a lot
of statistical data

00:42:42.200 --> 00:42:44.783 align:middle line:84%
to figure out what words should
come out to the screen reader.

00:42:44.783 --> 00:42:47.720 align:middle line:84%
Like, a lot of the
left braces and stuff,

00:42:47.720 --> 00:42:50.060 align:middle line:90%
the results are always weird.

00:42:50.060 --> 00:42:53.343 align:middle line:84%
If you have a left brace, people
get that wrong 92% of the time.

00:42:53.343 --> 00:42:55.260 align:middle line:84%
But if it's the right
brace, they get it wrong

00:42:55.260 --> 00:42:56.630 align:middle line:90%
only 30% of the time.

00:42:56.630 --> 00:43:00.445 align:middle line:84%
So I always think it's funny
with industry treat teams,

00:43:00.445 --> 00:43:02.070 align:middle line:84%
because I don't know
what kind of data,

00:43:02.070 --> 00:43:03.612 align:middle line:84%
they're using to
make their decisions

00:43:03.612 --> 00:43:06.710 align:middle line:84%
for all the characters and
symbols and stuff, if any.

00:43:06.710 --> 00:43:09.350 align:middle line:84%
<v Julia Ferraioli> That's a really
good question and one that I

00:43:09.350 --> 00:43:12.140 align:middle line:90%
don't know the answer to.

00:43:12.140 --> 00:43:20.210 align:middle line:84%
I think Go took a lot
of inspiration from C.

00:43:20.210 --> 00:43:24.740 align:middle line:84%
And I think some of it is
probably just historic.

00:43:24.740 --> 00:43:28.160 align:middle line:84%
And some of it is, this is a
symbol we haven't used yet.

00:43:28.160 --> 00:43:30.170 align:middle line:90%
Let's use that.

00:43:30.170 --> 00:43:30.740 align:middle line:90%
I don't know.

00:43:30.740 --> 00:43:32.270 align:middle line:84%
I'm putting words
in people's mouth.

00:43:32.270 --> 00:43:35.657 align:middle line:90%


00:43:35.657 --> 00:43:37.990 align:middle line:84%
<v Andreas Stefik> I don't mean
to capitalize all the time.

00:43:37.990 --> 00:43:39.615 align:middle line:84%
I'm just appreciating
the conversation.

00:43:39.615 --> 00:43:40.617 align:middle line:90%
That's all, sorry.

00:43:40.617 --> 00:43:41.950 align:middle line:90%
<v Brianna Blaser> No, you're fine.

00:43:41.950 --> 00:43:44.533 align:middle line:84%
Does anybody else have any other
questions they'd like to ask?

00:43:44.533 --> 00:43:50.218 align:middle line:90%


00:43:50.218 --> 00:43:54.480 align:middle line:84%
You can unmute yourself
or type in the chat.

00:43:54.480 --> 00:43:57.850 align:middle line:84%
<v Richard Ladner> This is Richard again.

00:43:57.850 --> 00:44:00.352 align:middle line:90%
Julia are you aware of the--

00:44:00.352 --> 00:44:01.060 align:middle line:90%
what's it called?

00:44:01.060 --> 00:44:06.310 align:middle line:84%
It's a listserv called Program
L. Have you ever heard of that?

00:44:06.310 --> 00:44:07.750 align:middle line:90%
<v Andreas Stefik> Prog L.

00:44:07.750 --> 00:44:10.977 align:middle line:84%
<v Richard Ladner> No, it's Program L.
I can debate this.

00:44:10.977 --> 00:44:12.310 align:middle line:90%
<v Andreas Stefik> They changed it.

00:44:12.310 --> 00:44:14.770 align:middle line:84%
The technical thing is Prog
L. But you're right, it

00:44:14.770 --> 00:44:16.170 align:middle line:90%
means Program L.

00:44:16.170 --> 00:44:18.700 align:middle line:84%
<v Richard Ladner> No, Program L is what you--

00:44:18.700 --> 00:44:20.290 align:middle line:84%
when I get the email
from Program L,

00:44:20.290 --> 00:44:25.262 align:middle line:84%
it doesn't say Prog
L. It says Program L.

00:44:25.262 --> 00:44:26.970 align:middle line:84%
<v Andreas Stefik> I have
it open right now.

00:44:26.970 --> 00:44:28.530 align:middle line:84%
<v Richard Ladner> You interrupted me, Stefik.

00:44:28.530 --> 00:44:29.738 align:middle line:90%
<v Andreas Stefik> Yeah, I know.

00:44:29.738 --> 00:44:31.110 align:middle line:90%
Oh wait, they changed it back.

00:44:31.110 --> 00:44:31.800 align:middle line:90%
You're right.

00:44:31.800 --> 00:44:35.520 align:middle line:90%
It is Program L, as the tag.

00:44:35.520 --> 00:44:36.778 align:middle line:90%
And now they changed it.

00:44:36.778 --> 00:44:37.320 align:middle line:90%
You're right.

00:44:37.320 --> 00:44:37.920 align:middle line:90%
OK, I'm sorry.

00:44:37.920 --> 00:44:38.690 align:middle line:90%
I stand corrected.

00:44:38.690 --> 00:44:40.440 align:middle line:84%
<v Richard Ladner> Once
in a while I'm right.

00:44:40.440 --> 00:44:42.507 align:middle line:90%
<v Andreas Stefik> Fair enough.

00:44:42.507 --> 00:44:43.340 align:middle line:90%
I will stop talking.

00:44:43.340 --> 00:44:46.220 align:middle line:84%
<v Richard Ladner> Like
a clock that's broken.

00:44:46.220 --> 00:44:47.860 align:middle line:90%
Julia, have you heard of that?

00:44:47.860 --> 00:44:49.420 align:middle line:90%
<v Julia Ferraioli> No, I haven't.

00:44:49.420 --> 00:44:51.170 align:middle line:84%
<v Richard Ladner> So that's a program--

00:44:51.170 --> 00:44:55.850 align:middle line:84%
blind programmer
development listserv.

00:44:55.850 --> 00:44:58.530 align:middle line:84%
I don't know if you can go back
and search for terms or things

00:44:58.530 --> 00:45:03.090 align:middle line:84%
like that to see what
people are doing.

00:45:03.090 --> 00:45:04.950 align:middle line:90%
You could subscribe to that.

00:45:04.950 --> 00:45:07.155 align:middle line:90%
It's pretty active, I'd say.

00:45:07.155 --> 00:45:08.280 align:middle line:90%
<v Julia Ferraioli> Thank you.

00:45:08.280 --> 00:45:09.488 align:middle line:90%
<v Richard Ladner> I don't know.

00:45:09.488 --> 00:45:11.060 align:middle line:90%
Three or four emails a day.

00:45:11.060 --> 00:45:12.060 align:middle line:90%
<v Julia Ferraioli> Oh wow.

00:45:12.060 --> 00:45:12.510 align:middle line:90%
That is accurate.

00:45:12.510 --> 00:45:14.427 align:middle line:84%
<v Brianna Blaser> I'll
throw a link in the chat.

00:45:14.427 --> 00:45:16.680 align:middle line:84%
I hope that's the
right thing, guys.

00:45:16.680 --> 00:45:18.693 align:middle line:84%
<v Richard Ladner> Let me take a look at the chat.

00:45:18.693 --> 00:45:21.360 align:middle line:84%
<v Andreas Stefik> Yeah, it's a lot
more active than it used to be.

00:45:21.360 --> 00:45:23.910 align:middle line:90%
Over time, it's grown a lot.

00:45:23.910 --> 00:45:25.620 align:middle line:84%
It's really interesting
to kind of--

00:45:25.620 --> 00:45:28.140 align:middle line:84%
like a lot of the things you
mentioned in your talk, Julia,

00:45:28.140 --> 00:45:29.910 align:middle line:84%
it's interesting to
look at Program L,

00:45:29.910 --> 00:45:32.580 align:middle line:84%
because a lot of what
you're saying really

00:45:32.580 --> 00:45:35.010 align:middle line:84%
comes out in these
forum posts of people

00:45:35.010 --> 00:45:39.020 align:middle line:84%
talking about the
issues that they have.

00:45:39.020 --> 00:45:42.180 align:middle line:84%
<v Julia Ferraioli> Yes, for
me it was interesting,

00:45:42.180 --> 00:45:44.660 align:middle line:90%
because it was as though--

00:45:44.660 --> 00:45:51.570 align:middle line:84%
I didn't experience a true
degradation in my vision.

00:45:51.570 --> 00:45:54.220 align:middle line:90%
It was kind of light switchy.

00:45:54.220 --> 00:45:58.870 align:middle line:84%
So I had to get very used
to things very rapidly.

00:45:58.870 --> 00:46:02.590 align:middle line:84%
And I don't think I
entirely succeeded.

00:46:02.590 --> 00:46:07.620 align:middle line:84%
So learning from others
sounds like a great--

00:46:07.620 --> 00:46:10.852 align:middle line:90%
I'm going to join this listserv.

00:46:10.852 --> 00:46:13.310 align:middle line:84%
<v Andreas Stefik> It's interesting
in part because, you know,

00:46:13.310 --> 00:46:14.370 align:middle line:90%
you're a professional.

00:46:14.370 --> 00:46:16.460 align:middle line:84%
So you have sort
of a background.

00:46:16.460 --> 00:46:18.060 align:middle line:90%
And it sounds like you're--

00:46:18.060 --> 00:46:19.280 align:middle line:90%
I must have missed a few--

00:46:19.280 --> 00:46:20.600 align:middle line:84%
I couldn't connect
right at the beginning,

00:46:20.600 --> 00:46:22.225 align:middle line:84%
but it sounds like
you're adventitious.

00:46:22.225 --> 00:46:23.365 align:middle line:90%
Is that correct?

00:46:23.365 --> 00:46:24.490 align:middle line:90%
<v Julia Ferraioli> I'm sorry?

00:46:24.490 --> 00:46:26.365 align:middle line:84%
<v Andreas Stefik> You went
blind later in life,

00:46:26.365 --> 00:46:27.307 align:middle line:90%
like you said, right?

00:46:27.307 --> 00:46:28.640 align:middle line:90%
<v Julia Ferraioli> I'm low vision.

00:46:28.640 --> 00:46:30.620 align:middle line:90%
<v Andreas Stefik> Low vision, OK.

00:46:30.620 --> 00:46:33.650 align:middle line:84%
<v Julia Ferraioli> I'm
midway through my career.

00:46:33.650 --> 00:46:34.670 align:middle line:90%
<v Andreas Stefik> Midway.

00:46:34.670 --> 00:46:37.222 align:middle line:84%
So there's people like you
that are like total experts.

00:46:37.222 --> 00:46:38.430 align:middle line:90%
They know what they're doing.

00:46:38.430 --> 00:46:39.862 align:middle line:84%
They have professional
experience.

00:46:39.862 --> 00:46:41.570 align:middle line:84%
And then there's a
lot of people on there

00:46:41.570 --> 00:46:43.580 align:middle line:90%
that they're like, hey, I'm 15.

00:46:43.580 --> 00:46:44.540 align:middle line:90%
I know nothing.

00:46:44.540 --> 00:46:45.920 align:middle line:84%
I can barely turn
my computer on,

00:46:45.920 --> 00:46:47.570 align:middle line:84%
but I'm told I'm
supposed to program.

00:46:47.570 --> 00:46:49.418 align:middle line:90%
What do I do?

00:46:49.418 --> 00:46:50.960 align:middle line:84%
And those people
are fascinating too,

00:46:50.960 --> 00:46:55.740 align:middle line:84%
because their problems are so
different than other folks.

00:46:55.740 --> 00:46:57.740 align:middle line:84%
It sort of is fascinating
just listening to them

00:46:57.740 --> 00:47:01.250 align:middle line:90%
talk or whatnot.

00:47:01.250 --> 00:47:05.330 align:middle line:84%
<v Julia Ferraioli> Yes, and I
imagine there will be more

00:47:05.330 --> 00:47:12.910 align:middle line:84%
and more people like me as
the industry ages as well.

00:47:12.910 --> 00:47:16.400 align:middle line:90%
So that will be a--

00:47:16.400 --> 00:47:18.710 align:middle line:84%
hope we arrive at a
consensus about how

00:47:18.710 --> 00:47:21.780 align:middle line:90%
to tackle some of these issues.

00:47:21.780 --> 00:47:23.030 align:middle line:90%
<v Andreas Stefik> I hope so too.

00:47:23.030 --> 00:47:23.720 align:middle line:90%
And I think so.

00:47:23.720 --> 00:47:25.310 align:middle line:84%
I think actually
there's progress.

00:47:25.310 --> 00:47:27.920 align:middle line:90%
So I have some hope.

00:47:27.920 --> 00:47:30.777 align:middle line:84%
<v Julia Ferraioli>
Fingers crossed.

00:47:30.777 --> 00:47:32.110 align:middle line:90%
<v Brianna Blaser> Well, excellent.

00:47:32.110 --> 00:47:35.350 align:middle line:84%
Sounds like we're at a
good spot to wrap up.

00:47:35.350 --> 00:47:37.530 align:middle line:84%
Thanks everybody, as
always, for joining us today

00:47:37.530 --> 00:47:38.530 align:middle line:90%
and taking the time out.

00:47:38.530 --> 00:47:41.695 align:middle line:84%
Thanks especially to Julia
for joining us and sharing

00:47:41.695 --> 00:47:43.547 align:middle line:90%
this information.

00:47:43.547 --> 00:47:45.130 align:middle line:84%
<v Julia Ferraioli>
Thanks for having me.

00:47:45.130 --> 00:47:47.050 align:middle line:90%
Appreciate it.

00:47:47.050 --> 00:47:48.527 align:middle line:90%
Bye bye.

00:47:48.527 --> 00:47:49.360 align:middle line:90%
[INTERPOSING VOICES]

00:47:49.360 --> 00:47:50.443 align:middle line:90%
<v Brianna Blaser> Thank you.

00:47:50.443 --> 00:47:51.940 align:middle line:90%
<v Julia Ferraioli> Bye.