1
00:00:06,320 --> 00:00:11,499
[Music]

2
00:00:15,679 --> 00:00:21,279
hi everyone hope you all had a lovely

3
00:00:18,640 --> 00:00:22,560
afternoon tea or time zone appropriate

4
00:00:21,279 --> 00:00:26,560
other break

5
00:00:22,560 --> 00:00:28,720
um we have next up here

6
00:00:26,560 --> 00:00:31,279
um sorry i'm looking at the wrong place

7
00:00:28,720 --> 00:00:34,399
in the screen we have next up here don e

8
00:00:31,279 --> 00:00:37,200
call it i'm talking about upstream

9
00:00:34,399 --> 00:00:38,399
upstream accessibility a contributor's

10
00:00:37,200 --> 00:00:40,079
guide

11
00:00:38,399 --> 00:00:41,680
don likes to tinker with cloud

12
00:00:40,079 --> 00:00:43,600
infrastructure and security and

13
00:00:41,680 --> 00:00:45,440
regularly goes down rabbit holes in a

14
00:00:43,600 --> 00:00:47,120
futile search for ways to develop

15
00:00:45,440 --> 00:00:49,680
systems that are both reliable and

16
00:00:47,120 --> 00:00:52,719
impenetrable as well as accidental

17
00:00:49,680 --> 00:00:54,239
accessibility advocacy don can regularly

18
00:00:52,719 --> 00:00:55,840
be found sharing knowledge within the

19
00:00:54,239 --> 00:00:58,879
melbourne cloud infrastructure and

20
00:00:55,840 --> 00:01:00,960
devops communities outside work don is

21
00:00:58,879 --> 00:01:03,199
an occasional author kitchen alchemist

22
00:01:00,960 --> 00:01:06,640
and raging sports ball fan

23
00:01:03,199 --> 00:01:08,320
so don's talk is a pre-recorded talk um

24
00:01:06,640 --> 00:01:10,240
there won't be time for live questions

25
00:01:08,320 --> 00:01:12,159
after but don will be in the chat

26
00:01:10,240 --> 00:01:15,119
chatting away with you so please ask

27
00:01:12,159 --> 00:01:17,920
dawn all of your questions in the chat

28
00:01:15,119 --> 00:01:20,640
all right we're ready to go

29
00:01:17,920 --> 00:01:20,640
roll it chris

30
00:01:22,560 --> 00:01:26,799
hello everyone it is really good to be

31
00:01:24,880 --> 00:01:28,560
back here again at linux conference

32
00:01:26,799 --> 00:01:29,840
australia once again from the comfort of

33
00:01:28,560 --> 00:01:32,240
our own homes

34
00:01:29,840 --> 00:01:34,960
and i am here this year to talk about

35
00:01:32,240 --> 00:01:37,840
accessibility specifically accessibility

36
00:01:34,960 --> 00:01:39,439
in the upstream of open source software

37
00:01:37,840 --> 00:01:41,520
if that doesn't make sense to you yet

38
00:01:39,439 --> 00:01:43,119
don't worry because my aim by the end of

39
00:01:41,520 --> 00:01:45,439
this talk is to have laid out a

40
00:01:43,119 --> 00:01:47,600
contributor's guide if you will for the

41
00:01:45,439 --> 00:01:49,759
idea of upstreaming accessibility in

42
00:01:47,600 --> 00:01:51,200
open source software

43
00:01:49,759 --> 00:01:53,119
if you want to follow along with the

44
00:01:51,200 --> 00:01:55,439
sources that i used to put together this

45
00:01:53,119 --> 00:01:57,520
talk you can go to the link in the slide

46
00:01:55,439 --> 00:01:59,439
that's up at the moment or you can scan

47
00:01:57,520 --> 00:02:01,119
the qr code with your phone and it will

48
00:01:59,439 --> 00:02:02,960
bring you to a github repository with a

49
00:02:01,119 --> 00:02:05,759
list of all the sources that i used when

50
00:02:02,960 --> 00:02:07,200
putting this talk together

51
00:02:05,759 --> 00:02:08,879
to begin with i would like to

52
00:02:07,200 --> 00:02:10,959
acknowledge the warandro people of the

53
00:02:08,879 --> 00:02:13,440
kulin nation on whose land this talk was

54
00:02:10,959 --> 00:02:15,520
recorded this is and always will be

55
00:02:13,440 --> 00:02:18,160
aboriginal land their sovereignty was

56
00:02:15,520 --> 00:02:18,160
never seeded

57
00:02:18,560 --> 00:02:23,040
i'm sure that most of you have probably

58
00:02:20,879 --> 00:02:24,239
met me or encountered me in the wild by

59
00:02:23,040 --> 00:02:25,760
now

60
00:02:24,239 --> 00:02:27,280
but for those of you who haven't we're

61
00:02:25,760 --> 00:02:29,200
going to do a bit of an atypical

62
00:02:27,280 --> 00:02:31,519
introduction again

63
00:02:29,200 --> 00:02:34,000
last year at luna's conference australia

64
00:02:31,519 --> 00:02:35,519
when i gave my talk on the privacy tax

65
00:02:34,000 --> 00:02:37,360
which was about

66
00:02:35,519 --> 00:02:40,000
privacy and data

67
00:02:37,360 --> 00:02:43,120
data security in a world of tracking and

68
00:02:40,000 --> 00:02:44,959
hacking with regards to disability

69
00:02:43,120 --> 00:02:46,560
i had an artificial intelligence

70
00:02:44,959 --> 00:02:49,200
introduce me

71
00:02:46,560 --> 00:02:50,720
this time i want to introduce myself in

72
00:02:49,200 --> 00:02:52,000
terms of the way that i get around the

73
00:02:50,720 --> 00:02:53,440
world

74
00:02:52,000 --> 00:02:55,599
pertinent piece of information to

75
00:02:53,440 --> 00:02:57,920
understand here i don't have a driver's

76
00:02:55,599 --> 00:03:00,000
license so that means that i have a few

77
00:02:57,920 --> 00:03:02,879
different options for navigating my way

78
00:03:00,000 --> 00:03:04,800
around the world i can find someone who

79
00:03:02,879 --> 00:03:06,640
has both the car and a driver's license

80
00:03:04,800 --> 00:03:08,159
and ask them to take me from point a to

81
00:03:06,640 --> 00:03:09,680
point b

82
00:03:08,159 --> 00:03:11,920
i can

83
00:03:09,680 --> 00:03:14,640
get on public transport

84
00:03:11,920 --> 00:03:16,640
i can go out and i can get myself a taxi

85
00:03:14,640 --> 00:03:18,879
or use some sort of ride sharing app to

86
00:03:16,640 --> 00:03:21,120
get myself from point a to point b

87
00:03:18,879 --> 00:03:23,360
or i can walk

88
00:03:21,120 --> 00:03:25,840
some of these options have various

89
00:03:23,360 --> 00:03:27,120
benefits and downsides um

90
00:03:25,840 --> 00:03:28,799
being driven by other people is a

91
00:03:27,120 --> 00:03:30,879
wonderful thing but i am not always

92
00:03:28,799 --> 00:03:32,879
going to be able to find people who have

93
00:03:30,879 --> 00:03:34,959
a car a driver's license and the time to

94
00:03:32,879 --> 00:03:38,480
get me from point a to point b

95
00:03:34,959 --> 00:03:40,720
um using taxis and or ride sharing apps

96
00:03:38,480 --> 00:03:43,760
costs a lot of time and money and

97
00:03:40,720 --> 00:03:46,799
sometimes he's a really big faf

98
00:03:43,760 --> 00:03:48,480
walking is very practical but as you

99
00:03:46,799 --> 00:03:51,040
probably all know by now i'm quite

100
00:03:48,480 --> 00:03:53,519
limited in my ability to walk and you

101
00:03:51,040 --> 00:03:55,519
can't really walk long distances anyway

102
00:03:53,519 --> 00:03:57,120
so what this means in practice is that

103
00:03:55,519 --> 00:03:59,519
the way that i tend to get around the

104
00:03:57,120 --> 00:04:03,200
world involves a lot of use of

105
00:03:59,519 --> 00:04:03,200
melbourne's public transport system

106
00:04:03,360 --> 00:04:07,360
melbourne's public transport system

107
00:04:05,599 --> 00:04:09,280
at least in metropolitan melbourne is

108
00:04:07,360 --> 00:04:12,239
made up of three different forms of

109
00:04:09,280 --> 00:04:14,480
transport largely trains trams and buses

110
00:04:12,239 --> 00:04:16,479
forget about the buses let's talk about

111
00:04:14,480 --> 00:04:18,560
the trams and the trains

112
00:04:16,479 --> 00:04:20,639
and i want to start here by talking

113
00:04:18,560 --> 00:04:23,040
about the trams

114
00:04:20,639 --> 00:04:25,440
because if i want to get from point a to

115
00:04:23,040 --> 00:04:27,440
point b on a tram there are quite a

116
00:04:25,440 --> 00:04:30,000
number of logistical hurdles to me

117
00:04:27,440 --> 00:04:32,160
actually doing that

118
00:04:30,000 --> 00:04:34,720
the victorian government's auditor has

119
00:04:32,160 --> 00:04:37,520
actually done an audit recently on the

120
00:04:34,720 --> 00:04:39,520
accessibility of the yara trams fleet

121
00:04:37,520 --> 00:04:42,639
and yara tram stops

122
00:04:39,520 --> 00:04:44,639
and what they found is that only about

123
00:04:42,639 --> 00:04:47,199
half of the tram routes that run in

124
00:04:44,639 --> 00:04:50,960
melbourne have low floor accessible

125
00:04:47,199 --> 00:04:53,120
trams running on them at all

126
00:04:50,960 --> 00:04:56,800
and none of those routes have low fall

127
00:04:53,120 --> 00:04:58,080
low floor trams running 100 of the time

128
00:04:56,800 --> 00:05:00,479
now

129
00:04:58,080 --> 00:05:02,400
the chief importance here being that uh

130
00:05:00,479 --> 00:05:04,400
the higher floor trams actually require

131
00:05:02,400 --> 00:05:06,240
you to get upstairs to be able to get on

132
00:05:04,400 --> 00:05:08,080
them so if you're a wheelchair user

133
00:05:06,240 --> 00:05:10,160
essentially you cannot use high floor

134
00:05:08,080 --> 00:05:11,840
trams unless you've somehow managed to

135
00:05:10,160 --> 00:05:13,600
crawl yourself in the wheelchair up the

136
00:05:11,840 --> 00:05:16,000
stairs

137
00:05:13,600 --> 00:05:18,160
but it's not just the tram fleet that

138
00:05:16,000 --> 00:05:19,520
prevents a that presents a logistical

139
00:05:18,160 --> 00:05:21,280
barrier to

140
00:05:19,520 --> 00:05:22,880
myself and other disabled people

141
00:05:21,280 --> 00:05:25,520
actually using

142
00:05:22,880 --> 00:05:28,000
the services of yara trams it's also the

143
00:05:25,520 --> 00:05:29,840
fact that in order to be able to safely

144
00:05:28,000 --> 00:05:32,560
get on a tram if you are a wheelchair

145
00:05:29,840 --> 00:05:34,800
user even if it's a low floor tram you

146
00:05:32,560 --> 00:05:37,520
need to actually be able to get on at a

147
00:05:34,800 --> 00:05:39,759
stop that is accessible where the

148
00:05:37,520 --> 00:05:42,000
curbside of the stop

149
00:05:39,759 --> 00:05:43,199
meets the doors of the tram

150
00:05:42,000 --> 00:05:45,440
and again

151
00:05:43,199 --> 00:05:47,520
even on the route where the vast

152
00:05:45,440 --> 00:05:50,400
majority of trams that are run are

153
00:05:47,520 --> 00:05:52,479
accessible low floor trams

154
00:05:50,400 --> 00:05:55,199
only one route

155
00:05:52,479 --> 00:05:58,160
the number 96

156
00:05:55,199 --> 00:06:00,800
comes close to 100 of its tram stops

157
00:05:58,160 --> 00:06:02,880
being accessible the rest even the ones

158
00:06:00,800 --> 00:06:06,080
that quite a number of low floor trams

159
00:06:02,880 --> 00:06:08,400
run on hover between sort of 50 and 60

160
00:06:06,080 --> 00:06:11,680
percent some have basically no

161
00:06:08,400 --> 00:06:11,680
accessible stops at all

162
00:06:12,000 --> 00:06:16,319
so to illustrate this

163
00:06:14,720 --> 00:06:18,319
let's go for a walk through the

164
00:06:16,319 --> 00:06:20,240
melbourne cbd

165
00:06:18,319 --> 00:06:22,400
and have a look at some of the public

166
00:06:20,240 --> 00:06:24,560
transport options that i would have if i

167
00:06:22,400 --> 00:06:25,759
wanted to get from point a to point b on

168
00:06:24,560 --> 00:06:27,280
a track

169
00:06:25,759 --> 00:06:29,680
so it is currently

170
00:06:27,280 --> 00:06:32,639
approximately nine o'clock

171
00:06:29,680 --> 00:06:36,240
in melbourne on the 28th of december and

172
00:06:32,639 --> 00:06:38,240
i have just got off a route 86 tram

173
00:06:36,240 --> 00:06:40,400
uh at the burke street mall elizabeth

174
00:06:38,240 --> 00:06:43,280
straight stop

175
00:06:40,400 --> 00:06:45,840
and i want to do a little tour of all of

176
00:06:43,280 --> 00:06:49,440
the tram stops going down to where my

177
00:06:45,840 --> 00:06:52,000
office currently is to actually prove

178
00:06:49,440 --> 00:06:54,560
this point about accessibility

179
00:06:52,000 --> 00:06:57,759
then we have a crossing here

180
00:06:54,560 --> 00:06:57,759
that is coming up ahead

181
00:06:58,240 --> 00:07:01,759
and if i turn the phone very slightly to

182
00:07:00,240 --> 00:07:05,039
the left

183
00:07:01,759 --> 00:07:05,039
accessible tram stop

184
00:07:10,240 --> 00:07:14,840
so you can see along these routes that

185
00:07:11,919 --> 00:07:17,039
some of the trap stops are actually

186
00:07:14,840 --> 00:07:19,440
accessible but if we head a little bit

187
00:07:17,039 --> 00:07:19,440
further

188
00:07:19,680 --> 00:07:24,160
something which you can't see

189
00:07:21,759 --> 00:07:25,599
but is visually apparent to me is there

190
00:07:24,160 --> 00:07:27,919
is a tram at the moment pulling up to

191
00:07:25,599 --> 00:07:30,479
the accessible transport

192
00:07:27,919 --> 00:07:32,960
which is a high fuel tram that has got

193
00:07:30,479 --> 00:07:34,880
stairs coming up to it

194
00:07:32,960 --> 00:07:36,560
so what we have there is the problem of

195
00:07:34,880 --> 00:07:38,400
the stop is accessible

196
00:07:36,560 --> 00:07:40,000
but the tram that's running along is

197
00:07:38,400 --> 00:07:41,840
actually not

198
00:07:40,000 --> 00:07:43,599
so we're now approaching collins

199
00:07:41,840 --> 00:07:45,199
straight

200
00:07:43,599 --> 00:07:47,360
there are cross between four and

201
00:07:45,199 --> 00:07:49,919
straight levels of the stream

202
00:07:47,360 --> 00:07:52,319
so actually crossing over the road

203
00:07:49,919 --> 00:07:56,319
if i tilt this to the right

204
00:07:52,319 --> 00:07:56,319
you can see again accessible

205
00:07:56,840 --> 00:08:02,240
that's straight over three but again

206
00:08:00,000 --> 00:08:03,599
it had one of the non-accessible trams

207
00:08:02,240 --> 00:08:08,000
there

208
00:08:03,599 --> 00:08:10,160
so they run 11 12 48 and 109 along there

209
00:08:08,000 --> 00:08:13,759
and part of the problem is not all of

210
00:08:10,160 --> 00:08:16,080
those trams are actually accessible

211
00:08:13,759 --> 00:08:17,280
this is going to require me to make two

212
00:08:16,080 --> 00:08:20,560
crossings

213
00:08:17,280 --> 00:08:20,560
to actually show this to you

214
00:08:25,680 --> 00:08:29,280
and you can see here again

215
00:08:29,360 --> 00:08:34,250
that there

216
00:08:30,479 --> 00:08:37,340
is a local trap

217
00:08:34,250 --> 00:08:37,340
[Music]

218
00:08:46,510 --> 00:08:53,440
[Music]

219
00:08:51,200 --> 00:08:55,279
so this area around the street the

220
00:08:53,440 --> 00:08:57,680
little stream

221
00:08:55,279 --> 00:09:01,760
this was just redone

222
00:08:57,680 --> 00:09:03,600
at a um not small expense

223
00:09:01,760 --> 00:09:06,560
as you can see

224
00:09:03,600 --> 00:09:08,640
as i'm walking along here

225
00:09:06,560 --> 00:09:10,240
they didn't actually think to redo the

226
00:09:08,640 --> 00:09:12,080
tram stop

227
00:09:10,240 --> 00:09:14,000
so this entire tram stop is a ground

228
00:09:12,080 --> 00:09:15,920
level

229
00:09:14,000 --> 00:09:17,839
and if i approach

230
00:09:15,920 --> 00:09:20,560
the route 19 [ __ ] head which is

231
00:09:17,839 --> 00:09:23,120
actually a beautiful illustration

232
00:09:20,560 --> 00:09:24,640
of how this works

233
00:09:23,120 --> 00:09:27,360
you can see

234
00:09:24,640 --> 00:09:29,360
the doors don't meet the ground

235
00:09:27,360 --> 00:09:32,560
so as you can see

236
00:09:29,360 --> 00:09:34,480
that's not super ideal

237
00:09:32,560 --> 00:09:36,320
there are certain areas of melbourne if

238
00:09:34,480 --> 00:09:38,080
you want to get from point a to point b

239
00:09:36,320 --> 00:09:40,080
by tram that are exceptionally

240
00:09:38,080 --> 00:09:41,920
accessible very easy for wheelchair

241
00:09:40,080 --> 00:09:44,560
users to just roll themselves on and

242
00:09:41,920 --> 00:09:46,080
roll themselves off pretty easy for the

243
00:09:44,560 --> 00:09:47,760
vast majority of other people with

244
00:09:46,080 --> 00:09:49,519
physical disabilities to get on and get

245
00:09:47,760 --> 00:09:51,680
off as well

246
00:09:49,519 --> 00:09:53,200
but there are tram stops like the one at

247
00:09:51,680 --> 00:09:55,839
the corner of flinders and elizabeth

248
00:09:53,200 --> 00:09:58,399
street which even though there is ample

249
00:09:55,839 --> 00:09:59,760
space to make the tram stop itself

250
00:09:58,399 --> 00:10:01,600
accessible

251
00:09:59,760 --> 00:10:03,519
and even though

252
00:10:01,600 --> 00:10:06,160
a very large amount of money was just

253
00:10:03,519 --> 00:10:07,680
spent renovating that precinct

254
00:10:06,160 --> 00:10:09,519
nothing was actually done to make the

255
00:10:07,680 --> 00:10:11,920
tram stop accessible

256
00:10:09,519 --> 00:10:14,560
and they don't run low floor trams along

257
00:10:11,920 --> 00:10:16,160
there now the audit report actually

258
00:10:14,560 --> 00:10:19,200
pointed out that

259
00:10:16,160 --> 00:10:21,120
yara trams used to have a

260
00:10:19,200 --> 00:10:23,440
an exemption from

261
00:10:21,120 --> 00:10:25,440
or a waiver around the accessibility

262
00:10:23,440 --> 00:10:28,399
legislation in victoria that actually

263
00:10:25,440 --> 00:10:30,240
expired in september of last year um the

264
00:10:28,399 --> 00:10:32,480
new target was supposed to be for them

265
00:10:30,240 --> 00:10:35,519
to make the vast majority of tram fleets

266
00:10:32,480 --> 00:10:37,600
accessible by september of 2022

267
00:10:35,519 --> 00:10:39,600
and probably surprising nobody who's had

268
00:10:37,600 --> 00:10:42,160
any dealings with government they're not

269
00:10:39,600 --> 00:10:44,480
going to meet that deadline either

270
00:10:42,160 --> 00:10:46,560
the auditor also pointed out that this

271
00:10:44,480 --> 00:10:48,880
actually puts them at risk of being sued

272
00:10:46,560 --> 00:10:52,160
or taken to tribunal for offering

273
00:10:48,880 --> 00:10:52,160
inaccessible services

274
00:10:52,399 --> 00:10:57,920
so then we have to look at metro trains

275
00:10:55,519 --> 00:11:00,240
because on the surface

276
00:10:57,920 --> 00:11:02,720
metro trains actually seems like a much

277
00:11:00,240 --> 00:11:05,120
better option if you want to take public

278
00:11:02,720 --> 00:11:07,040
transport around melbourne all of

279
00:11:05,120 --> 00:11:09,600
melbourne's trains at least the ones

280
00:11:07,040 --> 00:11:12,320
that run on the metropolitan lines are

281
00:11:09,600 --> 00:11:16,240
accessible they're all low floor you can

282
00:11:12,320 --> 00:11:16,240
get in get out of them fairly readily

283
00:11:16,320 --> 00:11:20,160
kind of

284
00:11:18,079 --> 00:11:22,000
because the issue that you run into with

285
00:11:20,160 --> 00:11:23,680
metro trains

286
00:11:22,000 --> 00:11:26,160
is that they have the same sort of

287
00:11:23,680 --> 00:11:29,680
problem that the trams do in that in a

288
00:11:26,160 --> 00:11:32,480
lot of cases the floor of the train does

289
00:11:29,680 --> 00:11:34,320
not actually meet the edge of the tram

290
00:11:32,480 --> 00:11:36,240
stop the edge of the

291
00:11:34,320 --> 00:11:38,240
the train platform

292
00:11:36,240 --> 00:11:40,079
and so in order to get on

293
00:11:38,240 --> 00:11:41,600
if you're me or if you're a wheelchair

294
00:11:40,079 --> 00:11:43,600
user or someone who has some sort of

295
00:11:41,600 --> 00:11:45,680
other mobility impairment you're

296
00:11:43,600 --> 00:11:47,120
actually reliant in a lot of cases on

297
00:11:45,680 --> 00:11:49,600
the driver

298
00:11:47,120 --> 00:11:51,279
coming out and getting a ramp for you so

299
00:11:49,600 --> 00:11:53,600
that you can then will yourself on and

300
00:11:51,279 --> 00:11:53,600
off

301
00:11:54,160 --> 00:11:57,920
and

302
00:11:55,120 --> 00:12:01,920
as the many many complaint letters that

303
00:11:57,920 --> 00:12:04,560
i have sent to metro trains can attest

304
00:12:01,920 --> 00:12:06,000
and as the many many very polite letters

305
00:12:04,560 --> 00:12:08,959
that i've got back from their complaints

306
00:12:06,000 --> 00:12:11,760
department can also attest um that

307
00:12:08,959 --> 00:12:13,920
doesn't always work out quite so well as

308
00:12:11,760 --> 00:12:16,000
you might think so this is a train

309
00:12:13,920 --> 00:12:18,639
sitting on a platform at flinders street

310
00:12:16,000 --> 00:12:20,880
station if you look at the doors of the

311
00:12:18,639 --> 00:12:24,240
trains that are open you can actually

312
00:12:20,880 --> 00:12:26,480
see not only is there a gap between the

313
00:12:24,240 --> 00:12:28,480
train and the platform that's quite

314
00:12:26,480 --> 00:12:30,320
significant but there's also a height

315
00:12:28,480 --> 00:12:31,680
differential and that means that if

316
00:12:30,320 --> 00:12:33,519
you're in a wheelchair or you have

317
00:12:31,680 --> 00:12:35,760
trouble lifting your knees it's going to

318
00:12:33,519 --> 00:12:37,040
be really hard if not impossible to get

319
00:12:35,760 --> 00:12:39,760
yourself on

320
00:12:37,040 --> 00:12:42,000
this has been fixed to an extent by

321
00:12:39,760 --> 00:12:44,079
raising the platforms at one end of the

322
00:12:42,000 --> 00:12:47,200
platform where the driver usually comes

323
00:12:44,079 --> 00:12:50,079
in so that people can roll themselves on

324
00:12:47,200 --> 00:12:52,959
but that hasn't been done on every train

325
00:12:50,079 --> 00:12:55,040
platform at every station and the other

326
00:12:52,959 --> 00:12:56,800
issue with that is even then there's

327
00:12:55,040 --> 00:12:58,480
only the one position that you can get

328
00:12:56,800 --> 00:13:00,240
on the train you still have to get

329
00:12:58,480 --> 00:13:02,720
yourself often all the way down the

330
00:13:00,240 --> 00:13:04,639
platform to be able to safely get on the

331
00:13:02,720 --> 00:13:06,560
train without assistance

332
00:13:04,639 --> 00:13:08,399
there's a salient point here that i want

333
00:13:06,560 --> 00:13:10,639
to illustrate

334
00:13:08,399 --> 00:13:13,120
which is around

335
00:13:10,639 --> 00:13:15,519
the nature of accessibility

336
00:13:13,120 --> 00:13:17,360
the nature of adaptability and

337
00:13:15,519 --> 00:13:21,279
assistance

338
00:13:17,360 --> 00:13:25,120
and what these actually look like now

339
00:13:21,279 --> 00:13:28,320
this is important because

340
00:13:25,120 --> 00:13:31,440
in some cases even though the yara trams

341
00:13:28,320 --> 00:13:33,920
network actually looks less accessible

342
00:13:31,440 --> 00:13:35,920
in some cases the yara trams network is

343
00:13:33,920 --> 00:13:37,360
actually the better option

344
00:13:35,920 --> 00:13:40,079
if you're physically disabled and you

345
00:13:37,360 --> 00:13:42,720
want to get from point a to point b

346
00:13:40,079 --> 00:13:45,600
because you don't actually need help

347
00:13:42,720 --> 00:13:47,600
from any individual person there's no

348
00:13:45,600 --> 00:13:49,920
single point of failure you can get

349
00:13:47,600 --> 00:13:51,600
yourself on and get yourself off because

350
00:13:49,920 --> 00:13:53,760
the infrastructure has been built in

351
00:13:51,600 --> 00:13:55,839
such a way to allow you to do that

352
00:13:53,760 --> 00:13:58,000
essentially rather than you having to

353
00:13:55,839 --> 00:14:00,240
ask people for assistance the

354
00:13:58,000 --> 00:14:02,399
infrastructure has adapted

355
00:14:00,240 --> 00:14:04,079
it's helped without the handshake it's

356
00:14:02,399 --> 00:14:06,560
help that comes in the form of the way

357
00:14:04,079 --> 00:14:08,320
that we've built up society

358
00:14:06,560 --> 00:14:10,399
rather than help that relies on

359
00:14:08,320 --> 00:14:12,240
individual people good will and single

360
00:14:10,399 --> 00:14:14,240
points of failure

361
00:14:12,240 --> 00:14:16,480
this sort of analogy is applicable to

362
00:14:14,240 --> 00:14:18,160
many many other aspects of life as well

363
00:14:16,480 --> 00:14:22,079
so something that's important to think

364
00:14:18,160 --> 00:14:25,040
about here then is the idea of public

365
00:14:22,079 --> 00:14:27,440
utilities

366
00:14:25,040 --> 00:14:28,880
metro trains and yarra trams even though

367
00:14:27,440 --> 00:14:30,800
they're technically privatized are

368
00:14:28,880 --> 00:14:33,040
public utilities they're available for

369
00:14:30,800 --> 00:14:34,800
anyone in the public to use on the

370
00:14:33,040 --> 00:14:36,079
assumption that they pay some sort of

371
00:14:34,800 --> 00:14:38,240
fee

372
00:14:36,079 --> 00:14:40,880
in fact a modern world without public

373
00:14:38,240 --> 00:14:42,480
utilities wouldn't really be a modern

374
00:14:40,880 --> 00:14:44,480
world at all

375
00:14:42,480 --> 00:14:46,160
a lot of the things that we're able to

376
00:14:44,480 --> 00:14:47,760
do day-to-day

377
00:14:46,160 --> 00:14:49,760
a lot of these structures of modern

378
00:14:47,760 --> 00:14:52,240
daily life

379
00:14:49,760 --> 00:14:54,079
are actually very much built around

380
00:14:52,240 --> 00:14:56,560
these public utilities and public

381
00:14:54,079 --> 00:14:59,040
support that we as a size that we as a

382
00:14:56,560 --> 00:15:00,160
society have been able to put together

383
00:14:59,040 --> 00:15:02,480
to function

384
00:15:00,160 --> 00:15:04,320
interconnected but without needing to

385
00:15:02,480 --> 00:15:06,880
ask for help from any specific

386
00:15:04,320 --> 00:15:06,880
individual

387
00:15:07,199 --> 00:15:11,040
and there are a lot of different aspects

388
00:15:09,519 --> 00:15:13,040
of the world around us that we could

389
00:15:11,040 --> 00:15:16,000
consider in some ways to be

390
00:15:13,040 --> 00:15:17,760
public utilities in the sense that

391
00:15:16,000 --> 00:15:19,839
regardless of whether one has to pay a

392
00:15:17,760 --> 00:15:21,680
fee they are used by a very large

393
00:15:19,839 --> 00:15:24,079
percentage of the public in their

394
00:15:21,680 --> 00:15:27,440
day-to-day lives we can look at things

395
00:15:24,079 --> 00:15:29,199
like water electricity public transport

396
00:15:27,440 --> 00:15:31,519
but we can also look at things which are

397
00:15:29,199 --> 00:15:35,199
much more relevant day-to-day to our

398
00:15:31,519 --> 00:15:37,040
career in in our careers in technology

399
00:15:35,199 --> 00:15:39,839
we can actually look at the internet and

400
00:15:37,040 --> 00:15:42,480
computers and the whole interconnected

401
00:15:39,839 --> 00:15:46,399
framework of the world wide web

402
00:15:42,480 --> 00:15:48,320
as being part of a public utility

403
00:15:46,399 --> 00:15:51,279
you know anyone can effectively just

404
00:15:48,320 --> 00:15:53,279
walk into other people's public websites

405
00:15:51,279 --> 00:15:55,839
and see what's up there and see what's

406
00:15:53,279 --> 00:15:55,839
going on there

407
00:15:56,240 --> 00:16:00,399
and that sort of thinking has been

408
00:15:58,639 --> 00:16:02,320
brought to the forefront of

409
00:16:00,399 --> 00:16:04,720
consciousness in the united states of

410
00:16:02,320 --> 00:16:06,839
america recently by the country's

411
00:16:04,720 --> 00:16:09,440
favorite pastime of

412
00:16:06,839 --> 00:16:11,920
lawsuits specifically i want to call out

413
00:16:09,440 --> 00:16:14,399
the robles versus domino's pizza llc

414
00:16:11,920 --> 00:16:16,800
lawsuit which has been wending its way

415
00:16:14,399 --> 00:16:18,399
through the courts for several years at

416
00:16:16,800 --> 00:16:20,880
this point i believe it was actually

417
00:16:18,399 --> 00:16:24,079
filed in 2019

418
00:16:20,880 --> 00:16:26,639
and it was settled earlier this year

419
00:16:24,079 --> 00:16:29,519
essentially what happened was guillermo

420
00:16:26,639 --> 00:16:31,680
robles a blind screen reader user wanted

421
00:16:29,519 --> 00:16:33,600
to order himself a pizza

422
00:16:31,680 --> 00:16:36,079
and he chose to do this not by going

423
00:16:33,600 --> 00:16:38,800
down to his local domino's pizza outlet

424
00:16:36,079 --> 00:16:40,800
but by doing so online unfortunately

425
00:16:38,800 --> 00:16:43,040
what he found was that he wasn't

426
00:16:40,800 --> 00:16:44,800
actually able to not to navigate

427
00:16:43,040 --> 00:16:47,600
domino's website

428
00:16:44,800 --> 00:16:50,240
using his screen reader

429
00:16:47,600 --> 00:16:51,759
after some attempts to resolve this he

430
00:16:50,240 --> 00:16:55,040
followed the time-honored american

431
00:16:51,759 --> 00:16:57,920
tradition of having to suffer rights and

432
00:16:55,040 --> 00:17:00,079
sued domino's pizza

433
00:16:57,920 --> 00:17:01,040
the consequence of this after it went

434
00:17:00,079 --> 00:17:02,880
through

435
00:17:01,040 --> 00:17:04,480
several layers of the courts and

436
00:17:02,880 --> 00:17:06,959
appealed to the supreme court which

437
00:17:04,480 --> 00:17:09,199
ultimately sided with robles

438
00:17:06,959 --> 00:17:11,919
and then a second judgment in the lower

439
00:17:09,199 --> 00:17:14,480
court which sided with robles and agreed

440
00:17:11,919 --> 00:17:17,199
that domino's pizza needed to remediate

441
00:17:14,480 --> 00:17:21,039
the issues with their website

442
00:17:17,199 --> 00:17:23,280
the ultimate consequence of this is that

443
00:17:21,039 --> 00:17:26,720
in the us at least

444
00:17:23,280 --> 00:17:29,280
the world wide web and public websites

445
00:17:26,720 --> 00:17:31,919
are moving towards being defined as a

446
00:17:29,280 --> 00:17:34,160
place of public accommodation as part of

447
00:17:31,919 --> 00:17:35,840
the americans with disabilities act and

448
00:17:34,160 --> 00:17:38,080
this means that if you are legally

449
00:17:35,840 --> 00:17:40,559
required to have your brick and mortar

450
00:17:38,080 --> 00:17:42,320
stores accessible to all of the public

451
00:17:40,559 --> 00:17:44,720
not just those members of the public

452
00:17:42,320 --> 00:17:47,679
without disabilities

453
00:17:44,720 --> 00:17:49,679
you are also required to do the same

454
00:17:47,679 --> 00:17:51,760
with your online shopping website to do

455
00:17:49,679 --> 00:17:54,000
the same with your corporate website to

456
00:17:51,760 --> 00:17:55,919
provide equal access to people with

457
00:17:54,000 --> 00:17:58,240
disabilities regardless of the type of

458
00:17:55,919 --> 00:18:01,120
disability that they may have so that

459
00:17:58,240 --> 00:18:03,120
they can consume your content interface

460
00:18:01,120 --> 00:18:05,440
with your services or purchase your

461
00:18:03,120 --> 00:18:05,440
goods

462
00:18:08,320 --> 00:18:13,919
so that's america

463
00:18:10,400 --> 00:18:15,600
let's take a little trip across the pond

464
00:18:13,919 --> 00:18:18,080
i don't know what percentage of the

465
00:18:15,600 --> 00:18:18,880
audience today has ever lived in or been

466
00:18:18,080 --> 00:18:20,720
to

467
00:18:18,880 --> 00:18:21,760
england wales scotland or northern

468
00:18:20,720 --> 00:18:24,160
ireland

469
00:18:21,760 --> 00:18:26,559
the constituent countries of the united

470
00:18:24,160 --> 00:18:29,440
kingdom

471
00:18:26,559 --> 00:18:30,880
but the united kingdom actually has a

472
00:18:29,440 --> 00:18:33,360
really really

473
00:18:30,880 --> 00:18:36,000
good situation which will allow us to

474
00:18:33,360 --> 00:18:38,720
illustrate some of this idea of websites

475
00:18:36,000 --> 00:18:40,799
as public utilities

476
00:18:38,720 --> 00:18:42,400
for all of the massive problems with the

477
00:18:40,799 --> 00:18:43,679
uk's government that have become

478
00:18:42,400 --> 00:18:44,880
apparent

479
00:18:43,679 --> 00:18:46,720
probably

480
00:18:44,880 --> 00:18:48,640
well before my lifetime and have been

481
00:18:46,720 --> 00:18:51,360
continuing to become apparent for the

482
00:18:48,640 --> 00:18:54,640
entire time that i have been around

483
00:18:51,360 --> 00:18:56,799
one thing that the uk does really well

484
00:18:54,640 --> 00:18:59,600
is accessibility on their government

485
00:18:56,799 --> 00:19:00,960
website essentially the dot gov dot uk

486
00:18:59,600 --> 00:19:04,000
sites

487
00:19:00,960 --> 00:19:08,840
and information on dot gov dot uk sites

488
00:19:04,000 --> 00:19:10,880
massively varies from the uh much

489
00:19:08,840 --> 00:19:12,000
satirizedpreparingwithemergencies.gov uk

490
00:19:10,880 --> 00:19:14,400
to

491
00:19:12,000 --> 00:19:18,960
her majesty's internal revenue service

492
00:19:14,400 --> 00:19:20,480
to various parliamentary websites to

493
00:19:18,960 --> 00:19:22,799
general uh

494
00:19:20,480 --> 00:19:25,360
information on how to access various

495
00:19:22,799 --> 00:19:28,080
aspects of the country

496
00:19:25,360 --> 00:19:29,600
and the dot gov dot uk websites as a

497
00:19:28,080 --> 00:19:31,120
whole

498
00:19:29,600 --> 00:19:33,120
have the incredible achievement of

499
00:19:31,120 --> 00:19:36,400
probably actually being one of the most

500
00:19:33,120 --> 00:19:38,320
accessible top level domains on the web

501
00:19:36,400 --> 00:19:42,240
and the reason why this is really

502
00:19:38,320 --> 00:19:44,799
interesting is because by and large

503
00:19:42,240 --> 00:19:50,960
uk government websites are all built

504
00:19:44,799 --> 00:19:53,280
almost entirely with raw html and css

505
00:19:50,960 --> 00:19:56,080
the reason why they're built that way is

506
00:19:53,280 --> 00:19:57,919
actually for accessibility purposes

507
00:19:56,080 --> 00:19:59,760
the idea is that if the government is

508
00:19:57,919 --> 00:20:01,200
not building with frameworks if the

509
00:19:59,760 --> 00:20:04,159
government and people building

510
00:20:01,200 --> 00:20:06,400
government websites build with raw html

511
00:20:04,159 --> 00:20:09,039
and css and have a consistent set of

512
00:20:06,400 --> 00:20:10,640
standards that they have to follow

513
00:20:09,039 --> 00:20:12,960
it's vastly more likely that the

514
00:20:10,640 --> 00:20:14,720
websites that they produce actually will

515
00:20:12,960 --> 00:20:17,600
be accessible

516
00:20:14,720 --> 00:20:20,720
to anybody who needs to go to them

517
00:20:17,600 --> 00:20:22,559
particularly now with html5

518
00:20:20,720 --> 00:20:25,039
that a lot of features around

519
00:20:22,559 --> 00:20:27,760
accessibility are inherently built into

520
00:20:25,039 --> 00:20:29,520
html itself

521
00:20:27,760 --> 00:20:31,360
and this is a strategy that's actually

522
00:20:29,520 --> 00:20:33,919
worked really well

523
00:20:31,360 --> 00:20:36,480
having uk government software developers

524
00:20:33,919 --> 00:20:40,520
follow this strategy has

525
00:20:36,480 --> 00:20:42,559
according to several surveys resulted in

526
00:20:40,520 --> 00:20:45,760
the.gov.uktld being one of the most

527
00:20:42,559 --> 00:20:45,760
accessible in the world

528
00:20:47,600 --> 00:20:52,080
the problem is that

529
00:20:49,520 --> 00:20:53,520
the modern web is not the dot gov dot uk

530
00:20:52,080 --> 00:20:55,520
tld

531
00:20:53,520 --> 00:20:58,080
the modern web is

532
00:20:55,520 --> 00:21:00,240
built almost entirely these days on

533
00:20:58,080 --> 00:21:02,080
frameworks

534
00:21:00,240 --> 00:21:04,559
and whilst there are very good reasons

535
00:21:02,080 --> 00:21:06,640
for the uk government choosing to build

536
00:21:04,559 --> 00:21:09,679
the vast majority of their websites in

537
00:21:06,640 --> 00:21:11,840
raw html and css there are also very

538
00:21:09,679 --> 00:21:14,080
good reasons why the modern web is built

539
00:21:11,840 --> 00:21:16,240
up the way that it is because there's no

540
00:21:14,080 --> 00:21:18,159
point in everybody reinventing the wheel

541
00:21:16,240 --> 00:21:20,960
there's no point in everybody writing

542
00:21:18,159 --> 00:21:23,840
their code in raw html when we can

543
00:21:20,960 --> 00:21:26,480
simply build frameworks and component

544
00:21:23,840 --> 00:21:28,799
libraries which will allow us to reuse

545
00:21:26,480 --> 00:21:30,480
other people's code and get on with the

546
00:21:28,799 --> 00:21:33,039
business of building the websites that

547
00:21:30,480 --> 00:21:35,200
we actually want to build

548
00:21:33,039 --> 00:21:37,520
this ethos has made web development

549
00:21:35,200 --> 00:21:39,760
vastly more accessible in terms of

550
00:21:37,520 --> 00:21:41,039
people actually being able to produce

551
00:21:39,760 --> 00:21:42,880
websites

552
00:21:41,039 --> 00:21:45,280
if you look at a lot of the modern low

553
00:21:42,880 --> 00:21:48,240
code platforms out there pretty well

554
00:21:45,280 --> 00:21:50,240
anyone can knock up a website in not too

555
00:21:48,240 --> 00:21:52,400
much time

556
00:21:50,240 --> 00:21:54,320
and actually put it on the web so that

557
00:21:52,400 --> 00:21:56,880
anyone is able to interface with their

558
00:21:54,320 --> 00:21:59,039
content anyone is able to purchase their

559
00:21:56,880 --> 00:22:01,840
goods and anyone is able to understand

560
00:21:59,039 --> 00:22:04,080
the services that they may provide

561
00:22:01,840 --> 00:22:05,840
the trade-off with that

562
00:22:04,080 --> 00:22:07,440
is that if your framework is not

563
00:22:05,840 --> 00:22:09,360
accessible

564
00:22:07,440 --> 00:22:12,159
your website is not necessarily

565
00:22:09,360 --> 00:22:15,520
accessible either

566
00:22:12,159 --> 00:22:19,120
the web aim study has consistently found

567
00:22:15,520 --> 00:22:21,440
that websites using frameworks have are

568
00:22:19,120 --> 00:22:23,679
more likely to have accessibility issues

569
00:22:21,440 --> 00:22:25,200
that are picked up by automatic checkers

570
00:22:23,679 --> 00:22:28,000
and that they also have more

571
00:22:25,200 --> 00:22:31,280
accessibility issues that are picked up

572
00:22:28,000 --> 00:22:34,400
um through automatic automated checkers

573
00:22:31,280 --> 00:22:37,200
ruby on rails is one of the uh

574
00:22:34,400 --> 00:22:38,960
better frameworks out there for this and

575
00:22:37,200 --> 00:22:41,760
some of the javascript-based frameworks

576
00:22:38,960 --> 00:22:43,919
are very much the worst offenders as you

577
00:22:41,760 --> 00:22:45,679
can see from this chart

578
00:22:43,919 --> 00:22:48,960
but

579
00:22:45,679 --> 00:22:51,039
it's true across the board that

580
00:22:48,960 --> 00:22:53,679
there are not really any frameworks out

581
00:22:51,039 --> 00:22:55,840
there that actually reduce your chance

582
00:22:53,679 --> 00:22:58,559
of having accessibility errors on the

583
00:22:55,840 --> 00:23:01,200
website that you're building

584
00:22:58,559 --> 00:23:02,880
and there are a few things to look at

585
00:23:01,200 --> 00:23:05,520
here around

586
00:23:02,880 --> 00:23:07,919
what actually makes a framework or a

587
00:23:05,520 --> 00:23:11,760
component library or some sort of

588
00:23:07,919 --> 00:23:14,320
reusable setup accessible

589
00:23:11,760 --> 00:23:16,320
full credit here to jess budd an

590
00:23:14,320 --> 00:23:18,000
accessibility specialist from perth

591
00:23:16,320 --> 00:23:20,960
western australia who i met at

592
00:23:18,000 --> 00:23:22,960
conference in adelaide in 2019

593
00:23:20,960 --> 00:23:24,880
she gave a talk there talking about how

594
00:23:22,960 --> 00:23:26,960
react accessibility wasn't that hard

595
00:23:24,880 --> 00:23:28,799
from her point of view and at the end of

596
00:23:26,960 --> 00:23:30,480
the talk i challenged her on this i

597
00:23:28,799 --> 00:23:33,200
actually said

598
00:23:30,480 --> 00:23:35,120
in my view as a disabled person

599
00:23:33,200 --> 00:23:37,600
the best kind of framework is a

600
00:23:35,120 --> 00:23:40,080
framework where

601
00:23:37,600 --> 00:23:42,240
people don't have to think about

602
00:23:40,080 --> 00:23:43,919
building accessibility into it and the

603
00:23:42,240 --> 00:23:46,400
fact that people have to think about

604
00:23:43,919 --> 00:23:48,799
building accessibility and to react in

605
00:23:46,400 --> 00:23:51,919
some ways actually means that it's maybe

606
00:23:48,799 --> 00:23:53,679
it is that hard

607
00:23:51,919 --> 00:23:54,799
we had a very very long and productive

608
00:23:53,679 --> 00:23:57,120
discussion

609
00:23:54,799 --> 00:24:00,080
after her talk and

610
00:23:57,120 --> 00:24:02,080
in some ways as i've seen more of modern

611
00:24:00,080 --> 00:24:03,679
web development build up and i've had

612
00:24:02,080 --> 00:24:05,840
more discussions with people about how

613
00:24:03,679 --> 00:24:08,400
it works i'm actually sort of coming

614
00:24:05,840 --> 00:24:09,360
around to her point of view on this

615
00:24:08,400 --> 00:24:11,120
that

616
00:24:09,360 --> 00:24:13,279
sometimes

617
00:24:11,120 --> 00:24:15,520
with regards to accessibility you don't

618
00:24:13,279 --> 00:24:16,400
want the perfect to be the enemy of the

619
00:24:15,520 --> 00:24:19,039
good

620
00:24:16,400 --> 00:24:21,120
the problem with that though is that

621
00:24:19,039 --> 00:24:23,679
some of these frameworks are designed so

622
00:24:21,120 --> 00:24:25,440
that anyone who deals with

623
00:24:23,679 --> 00:24:27,840
websites should be able to spin it up

624
00:24:25,440 --> 00:24:29,279
themselves and they're not necessarily

625
00:24:27,840 --> 00:24:31,200
going to know what they need to do to

626
00:24:29,279 --> 00:24:35,120
make it accessible

627
00:24:31,200 --> 00:24:37,520
so to boil it down into a few points

628
00:24:35,120 --> 00:24:40,320
the first thing that makes a framework

629
00:24:37,520 --> 00:24:43,200
or a component or any sort of reusable

630
00:24:40,320 --> 00:24:44,080
widget that you can plug into some sort

631
00:24:43,200 --> 00:24:45,760
of

632
00:24:44,080 --> 00:24:48,000
framework to build or some sort of

633
00:24:45,760 --> 00:24:50,640
programming language to build a website

634
00:24:48,000 --> 00:24:52,799
is that it's easy to do

635
00:24:50,640 --> 00:24:54,799
and that might mean that there is some

636
00:24:52,799 --> 00:24:56,799
manual intervention that still has to

637
00:24:54,799 --> 00:24:59,520
happen but it should be manual

638
00:24:56,799 --> 00:25:02,240
intervention that's clearly documented

639
00:24:59,520 --> 00:25:04,559
and easily explained to anyone without a

640
00:25:02,240 --> 00:25:07,039
lot of coding experience the second and

641
00:25:04,559 --> 00:25:09,840
perhaps more obvious aspect is there

642
00:25:07,039 --> 00:25:11,840
should be no errors that mean that you

643
00:25:09,840 --> 00:25:14,559
have to actually rewrite bits of the

644
00:25:11,840 --> 00:25:17,520
component or bits of the framework

645
00:25:14,559 --> 00:25:20,080
if you're building something reusable

646
00:25:17,520 --> 00:25:21,279
that has accessibility errors inherently

647
00:25:20,080 --> 00:25:22,960
baked in

648
00:25:21,279 --> 00:25:24,400
at that point it kind of defeats the

649
00:25:22,960 --> 00:25:26,000
purpose

650
00:25:24,400 --> 00:25:28,400
if you have to go and write another

651
00:25:26,000 --> 00:25:30,480
framework over it to actually make it

652
00:25:28,400 --> 00:25:32,480
accessible

653
00:25:30,480 --> 00:25:35,760
the third aspect around what makes a

654
00:25:32,480 --> 00:25:40,240
framework accessible is

655
00:25:35,760 --> 00:25:41,760
ease of use of accessibility features

656
00:25:40,240 --> 00:25:45,760
and something that's really interesting

657
00:25:41,760 --> 00:25:48,240
to call out here is tailwind css and

658
00:25:45,760 --> 00:25:50,320
specifically the tailwind ui components

659
00:25:48,240 --> 00:25:54,799
that they release

660
00:25:50,320 --> 00:25:57,200
rely on a bunch of free icons and free

661
00:25:54,799 --> 00:25:58,880
essentially component libraries

662
00:25:57,200 --> 00:26:01,600
that are

663
00:25:58,880 --> 00:26:04,080
fully accessible

664
00:26:01,600 --> 00:26:06,159
the issue that you may run into and this

665
00:26:04,080 --> 00:26:07,120
is part of where the nuance here is is

666
00:26:06,159 --> 00:26:09,120
around

667
00:26:07,120 --> 00:26:11,120
the difference between something that's

668
00:26:09,120 --> 00:26:13,520
actually built

669
00:26:11,120 --> 00:26:15,760
in a way that hinders accessibility and

670
00:26:13,520 --> 00:26:17,360
something that's just not built to make

671
00:26:15,760 --> 00:26:19,360
it easy

672
00:26:17,360 --> 00:26:21,360
frameworks like your react views

673
00:26:19,360 --> 00:26:23,120
angular's ruby on rails

674
00:26:21,360 --> 00:26:24,880
tend to fall more into the form of

675
00:26:23,120 --> 00:26:26,880
bucket that they're just not built to

676
00:26:24,880 --> 00:26:28,799
make it easy

677
00:26:26,880 --> 00:26:31,520
whereas

678
00:26:28,799 --> 00:26:34,000
if a component library is bad it's

679
00:26:31,520 --> 00:26:36,559
usually really bad and often that's

680
00:26:34,000 --> 00:26:39,840
around actual accessibility errors being

681
00:26:36,559 --> 00:26:39,840
baked in

682
00:26:40,240 --> 00:26:44,480
speaking of accessibility errors

683
00:26:42,880 --> 00:26:46,400
some of the accessibility errors that

684
00:26:44,480 --> 00:26:47,760
you might run into around component

685
00:26:46,400 --> 00:26:49,039
libraries

686
00:26:47,760 --> 00:26:50,720
are

687
00:26:49,039 --> 00:26:52,720
not the types of things that you might

688
00:26:50,720 --> 00:26:54,320
think of off the top of your head

689
00:26:52,720 --> 00:26:56,000
they're also not the types of things

690
00:26:54,320 --> 00:26:58,320
that are necessarily going to be picked

691
00:26:56,000 --> 00:27:01,520
up by automatic checkers

692
00:26:58,320 --> 00:27:04,840
and i can illustrate this by using the

693
00:27:01,520 --> 00:27:08,159
uh just use dark mode it'll be fine

694
00:27:04,840 --> 00:27:10,240
principle these are two logos of the

695
00:27:08,159 --> 00:27:12,640
chicago blackhawks of the national

696
00:27:10,240 --> 00:27:14,640
hockey league

697
00:27:12,640 --> 00:27:18,799
these were pulled off the website for

698
00:27:14,640 --> 00:27:21,279
cat friendly which is a website that

699
00:27:18,799 --> 00:27:23,120
lists essentially details around a

700
00:27:21,279 --> 00:27:25,679
contract of hockey players who play in

701
00:27:23,120 --> 00:27:27,600
the national hockey league

702
00:27:25,679 --> 00:27:29,760
and i'm sure that most of you can

703
00:27:27,600 --> 00:27:31,279
probably see the problem with this

704
00:27:29,760 --> 00:27:34,480
fairly readily

705
00:27:31,279 --> 00:27:37,200
um poor black hawk there

706
00:27:34,480 --> 00:27:39,520
doesn't quite function on light mode

707
00:27:37,200 --> 00:27:41,840
he's missing not just his eyes but some

708
00:27:39,520 --> 00:27:43,760
of the paint on his face

709
00:27:41,840 --> 00:27:45,919
of course this can essentially be solved

710
00:27:43,760 --> 00:27:46,960
by saying just use dark mode it'll be

711
00:27:45,919 --> 00:27:49,520
fine

712
00:27:46,960 --> 00:27:51,840
but if at that point you've actually

713
00:27:49,520 --> 00:27:53,600
built an entire website and you've set

714
00:27:51,840 --> 00:27:56,399
it up with both light mode and dark mode

715
00:27:53,600 --> 00:27:58,240
which the people who run cat friendly

716
00:27:56,399 --> 00:28:00,480
probably haven't at this point if

717
00:27:58,240 --> 00:28:02,000
they've got this error um

718
00:28:00,480 --> 00:28:03,600
you would be a bit knocked if you

719
00:28:02,000 --> 00:28:05,600
discovered that the images that you were

720
00:28:03,600 --> 00:28:07,279
using had transparent bits that

721
00:28:05,600 --> 00:28:09,600
essentially just disappeared depending

722
00:28:07,279 --> 00:28:12,960
on the color of your background

723
00:28:09,600 --> 00:28:14,399
and that kind of thing is a real issue

724
00:28:12,960 --> 00:28:17,200
because it can't be picked up by

725
00:28:14,399 --> 00:28:19,440
automatic checkers and you might start

726
00:28:17,200 --> 00:28:21,039
with a component library that looks

727
00:28:19,440 --> 00:28:22,880
perfectly fine

728
00:28:21,039 --> 00:28:24,720
and then as you're adding

729
00:28:22,880 --> 00:28:27,840
more and more accessibility features

730
00:28:24,720 --> 00:28:30,159
things like actually theming your site

731
00:28:27,840 --> 00:28:31,679
some of the more advanced features that

732
00:28:30,159 --> 00:28:34,000
help people

733
00:28:31,679 --> 00:28:34,880
particularly with visual differences

734
00:28:34,000 --> 00:28:36,640
then

735
00:28:34,880 --> 00:28:38,080
six months down the line you actually

736
00:28:36,640 --> 00:28:40,080
discover that the component library that

737
00:28:38,080 --> 00:28:42,720
you're using isn't accessible at all

738
00:28:40,080 --> 00:28:46,399
because it works with one or one of

739
00:28:42,720 --> 00:28:46,399
light or dark mode and not both

740
00:28:48,159 --> 00:28:51,600
and

741
00:28:49,200 --> 00:28:54,480
i'm sure that the vast majority of you

742
00:28:51,600 --> 00:28:55,840
here would not be surprised by what i'm

743
00:28:54,480 --> 00:28:57,200
about to say

744
00:28:55,840 --> 00:28:59,679
but something that's really important to

745
00:28:57,200 --> 00:29:01,840
consider here is

746
00:28:59,679 --> 00:29:03,600
careful choice of frameworks when you

747
00:29:01,840 --> 00:29:05,440
interact with

748
00:29:03,600 --> 00:29:07,360
the web and when you are building

749
00:29:05,440 --> 00:29:08,880
websites

750
00:29:07,360 --> 00:29:11,120
is important and it is your

751
00:29:08,880 --> 00:29:13,520
responsibility to look into it to do

752
00:29:11,120 --> 00:29:15,520
this research not to find things that

753
00:29:13,520 --> 00:29:18,159
are perfect

754
00:29:15,520 --> 00:29:20,240
but to find frameworks that are going to

755
00:29:18,159 --> 00:29:22,399
help you do this work rather than hinder

756
00:29:20,240 --> 00:29:22,399
it

757
00:29:23,760 --> 00:29:26,720
so that was a whole lot of discussion

758
00:29:25,600 --> 00:29:29,520
around

759
00:29:26,720 --> 00:29:31,520
public infrastructure and around

760
00:29:29,520 --> 00:29:32,880
the basics of what makes an accessible

761
00:29:31,520 --> 00:29:35,520
framework

762
00:29:32,880 --> 00:29:38,320
but the reality is nobody's perfect

763
00:29:35,520 --> 00:29:42,320
right not every framework is going to be

764
00:29:38,320 --> 00:29:44,320
entirely accessible out of the box

765
00:29:42,320 --> 00:29:47,200
so there's an important discussion here

766
00:29:44,320 --> 00:29:49,440
to have if you are using open source

767
00:29:47,200 --> 00:29:52,080
frameworks if you are building within an

768
00:29:49,440 --> 00:29:54,159
open source ecosystem

769
00:29:52,080 --> 00:29:56,880
about how we can contribute back to

770
00:29:54,159 --> 00:29:58,559
public infrastructure about how we can

771
00:29:56,880 --> 00:30:00,559
actually build around public

772
00:29:58,559 --> 00:30:03,760
infrastructure to make it more

773
00:30:00,559 --> 00:30:05,679
accessible to the people that use it

774
00:30:03,760 --> 00:30:09,279
and this to me is where the concept of

775
00:30:05,679 --> 00:30:11,600
upstream accessibility comes in

776
00:30:09,279 --> 00:30:13,679
there's no point in having

777
00:30:11,600 --> 00:30:15,840
fifty or a hundred or

778
00:30:13,679 --> 00:30:18,240
a thousand or a hundred thousand

779
00:30:15,840 --> 00:30:22,080
different web developers

780
00:30:18,240 --> 00:30:24,240
make the same change to a framework or

781
00:30:22,080 --> 00:30:27,200
to a component library or to

782
00:30:24,240 --> 00:30:32,000
some other piece of reusable code

783
00:30:27,200 --> 00:30:34,799
to make it accessible on their website

784
00:30:32,000 --> 00:30:36,960
it is vastly preferable for all of us if

785
00:30:34,799 --> 00:30:39,600
we can find ways to build this into the

786
00:30:36,960 --> 00:30:42,159
framework at its core

787
00:30:39,600 --> 00:30:44,640
to make it easier for people to use and

788
00:30:42,159 --> 00:30:46,240
to make it more readily accessible so

789
00:30:44,640 --> 00:30:48,080
that we don't have to have everyone

790
00:30:46,240 --> 00:30:51,840
essentially reinventing the wheel in

791
00:30:48,080 --> 00:30:51,840
amer in many many different ways

792
00:30:52,159 --> 00:30:56,000
but the thing about upstream

793
00:30:53,440 --> 00:30:58,480
accessibility that makes this kind of

794
00:30:56,000 --> 00:31:00,399
interesting is

795
00:30:58,480 --> 00:31:02,159
it requires becoming part of the open

796
00:31:00,399 --> 00:31:04,480
source ecosystem and it requires

797
00:31:02,159 --> 00:31:06,159
actually working out a way to

798
00:31:04,480 --> 00:31:09,519
have a lot of these discussions around

799
00:31:06,159 --> 00:31:11,440
accessibility and to push

800
00:31:09,519 --> 00:31:12,399
for people to

801
00:31:11,440 --> 00:31:15,919
take

802
00:31:12,399 --> 00:31:17,760
take their frameworks and improve them

803
00:31:15,919 --> 00:31:20,799
and a key component of this is that if

804
00:31:17,760 --> 00:31:22,559
you can do some of the work for people

805
00:31:20,799 --> 00:31:25,360
that will often show them the path to be

806
00:31:22,559 --> 00:31:27,519
able to do the rest

807
00:31:25,360 --> 00:31:28,640
so you're sitting down you're coding a

808
00:31:27,519 --> 00:31:29,919
website

809
00:31:28,640 --> 00:31:31,679
and you discover that maybe the

810
00:31:29,919 --> 00:31:34,399
component library that you're using has

811
00:31:31,679 --> 00:31:36,000
an outright accessibility error in it or

812
00:31:34,399 --> 00:31:37,440
you're looking at different component

813
00:31:36,000 --> 00:31:39,279
libraries and there's one that would be

814
00:31:37,440 --> 00:31:40,080
absolutely perfect for what you want to

815
00:31:39,279 --> 00:31:41,840
do

816
00:31:40,080 --> 00:31:44,000
but it requires you to use a web

817
00:31:41,840 --> 00:31:46,880
framework that doesn't really make

818
00:31:44,000 --> 00:31:48,480
accessibility easy for you

819
00:31:46,880 --> 00:31:50,399
at this point you're at the finding

820
00:31:48,480 --> 00:31:52,880
issues stage

821
00:31:50,399 --> 00:31:56,720
and there are several different ways to

822
00:31:52,880 --> 00:31:59,360
deal with these sorts of discoveries

823
00:31:56,720 --> 00:32:01,919
with varying chances of success

824
00:31:59,360 --> 00:32:04,240
in some cases you can just

825
00:32:01,919 --> 00:32:06,000
percolate what you've discovered up to

826
00:32:04,240 --> 00:32:07,919
the maintainers of the upstream package

827
00:32:06,000 --> 00:32:10,399
and say hey this is an issue around

828
00:32:07,919 --> 00:32:13,200
accessibility if they're very switched

829
00:32:10,399 --> 00:32:15,440
on if they're very active in making sure

830
00:32:13,200 --> 00:32:17,919
that they do know what's going on and

831
00:32:15,440 --> 00:32:19,519
that what they build is accessible

832
00:32:17,919 --> 00:32:21,519
it's very likely that those changes are

833
00:32:19,519 --> 00:32:22,960
going to be made really quickly

834
00:32:21,519 --> 00:32:24,720
on the other hand you might find that

835
00:32:22,960 --> 00:32:26,960
you're dealing with people who've never

836
00:32:24,720 --> 00:32:28,799
really interacted with the concept of

837
00:32:26,960 --> 00:32:30,320
accessibility at all

838
00:32:28,799 --> 00:32:34,480
or you might find that you're dealing

839
00:32:30,320 --> 00:32:34,480
with people who just don't understand it

840
00:32:34,640 --> 00:32:40,320
and so once you've found an issue

841
00:32:38,000 --> 00:32:42,480
then there's the question of

842
00:32:40,320 --> 00:32:44,960
when to upstream

843
00:32:42,480 --> 00:32:46,720
and when i originally proposed this talk

844
00:32:44,960 --> 00:32:48,640
i thought that i was going to be giving

845
00:32:46,720 --> 00:32:51,600
a very different roadmap for how to deal

846
00:32:48,640 --> 00:32:54,080
with upstream accessibility

847
00:32:51,600 --> 00:32:56,559
what changed my mind on this was a blog

848
00:32:54,080 --> 00:33:00,480
post by sherry bernhaber who is one of

849
00:32:56,559 --> 00:33:03,600
the luminaries of modern accessibility

850
00:33:00,480 --> 00:33:05,200
particularly modern web accessibility

851
00:33:03,600 --> 00:33:06,960
talking about how not to be an

852
00:33:05,200 --> 00:33:08,799
accessibility grinch which is very

853
00:33:06,960 --> 00:33:10,799
appropriate given that it's just gone

854
00:33:08,799 --> 00:33:12,480
christmas and new year

855
00:33:10,799 --> 00:33:14,960
and one of the things that she actually

856
00:33:12,480 --> 00:33:18,399
talks about in that blog post which

857
00:33:14,960 --> 00:33:20,880
completely changed my thinking on this

858
00:33:18,399 --> 00:33:24,640
is that

859
00:33:20,880 --> 00:33:26,880
you can't just take accessibility at a

860
00:33:24,640 --> 00:33:29,760
point in time

861
00:33:26,880 --> 00:33:31,440
part of maintaining accessible websites

862
00:33:29,760 --> 00:33:33,840
accessible frameworks accessible

863
00:33:31,440 --> 00:33:34,960
component libraries accessible reusable

864
00:33:33,840 --> 00:33:36,640
anything

865
00:33:34,960 --> 00:33:38,960
is about being able to constantly

866
00:33:36,640 --> 00:33:40,559
evaluate your accessibility posture it's

867
00:33:38,960 --> 00:33:44,159
about

868
00:33:40,559 --> 00:33:46,559
having if not an extremely deep at least

869
00:33:44,159 --> 00:33:48,960
deeper than surface level understanding

870
00:33:46,559 --> 00:33:51,679
of what you need to do to make all of

871
00:33:48,960 --> 00:33:54,080
these things work

872
00:33:51,679 --> 00:33:57,360
and so when it comes to the question of

873
00:33:54,080 --> 00:33:59,279
when to upstream accessibility

874
00:33:57,360 --> 00:34:01,200
the fundamental question that you have

875
00:33:59,279 --> 00:34:02,399
to ask yourself

876
00:34:01,200 --> 00:34:04,640
is

877
00:34:02,399 --> 00:34:06,159
am i dealing here with a group of people

878
00:34:04,640 --> 00:34:07,919
who look like they're going to be

879
00:34:06,159 --> 00:34:10,879
receptive to this

880
00:34:07,919 --> 00:34:13,040
and how much time am i willing to put in

881
00:34:10,879 --> 00:34:15,200
on fixes to make sure that these issues

882
00:34:13,040 --> 00:34:16,639
are remediated and these are all

883
00:34:15,200 --> 00:34:18,399
questions that you've got to consider

884
00:34:16,639 --> 00:34:20,800
when you think about when to upstream

885
00:34:18,399 --> 00:34:22,560
accessibility fixes

886
00:34:20,800 --> 00:34:24,240
there are scenarios where it's just

887
00:34:22,560 --> 00:34:27,359
better to walk away

888
00:34:24,240 --> 00:34:29,520
there are scenarios where it's better to

889
00:34:27,359 --> 00:34:31,040
actually find the most accessible option

890
00:34:29,520 --> 00:34:33,280
off the shelf

891
00:34:31,040 --> 00:34:34,399
and not worry about trying to make these

892
00:34:33,280 --> 00:34:35,919
improvements

893
00:34:34,399 --> 00:34:38,159
but if you have the time and the

894
00:34:35,919 --> 00:34:40,240
wherewithal and you have maintainers who

895
00:34:38,159 --> 00:34:42,159
are very receptive to this

896
00:34:40,240 --> 00:34:44,399
upstreaming accessibility can have

897
00:34:42,159 --> 00:34:47,200
massive benefits in the sense that it

898
00:34:44,399 --> 00:34:49,679
can make reusable things that many

899
00:34:47,200 --> 00:34:52,399
people are using and hopefully keeping

900
00:34:49,679 --> 00:34:52,399
up to date

901
00:34:53,040 --> 00:34:59,200
much much better in terms of experience

902
00:34:55,520 --> 00:34:59,200
for disabled users of the web

903
00:34:59,599 --> 00:35:03,200
the other thing that's very important to

904
00:35:01,280 --> 00:35:05,760
understand when you're thinking about

905
00:35:03,200 --> 00:35:07,440
when to upstream accessibility issues is

906
00:35:05,760 --> 00:35:10,400
the difference between

907
00:35:07,440 --> 00:35:12,400
a framework or component issue and a

908
00:35:10,400 --> 00:35:14,320
site level issue

909
00:35:12,400 --> 00:35:17,280
sometimes there will be things that you

910
00:35:14,320 --> 00:35:19,359
want to build that are very specific

911
00:35:17,280 --> 00:35:22,640
things that you want to build

912
00:35:19,359 --> 00:35:24,880
that need to be accessible

913
00:35:22,640 --> 00:35:26,160
but if those go into an upstream

914
00:35:24,880 --> 00:35:28,880
framework

915
00:35:26,160 --> 00:35:30,400
it may just add complexity that most

916
00:35:28,880 --> 00:35:32,240
people don't need

917
00:35:30,400 --> 00:35:35,200
if the core features of that framework

918
00:35:32,240 --> 00:35:37,359
are accessible as is it may not actually

919
00:35:35,200 --> 00:35:40,400
benefit people to build accessibility

920
00:35:37,359 --> 00:35:43,760
directly in for edge cases where you're

921
00:35:40,400 --> 00:35:45,520
building on top of the framework

922
00:35:43,760 --> 00:35:46,720
because it will potentially add more

923
00:35:45,520 --> 00:35:49,599
bloat

924
00:35:46,720 --> 00:35:51,200
we'll get on to that a bit later

925
00:35:49,599 --> 00:35:52,880
what we're talking about though in terms

926
00:35:51,200 --> 00:35:54,560
of the really good candidates for

927
00:35:52,880 --> 00:35:56,880
upstreaming accessibility are where

928
00:35:54,560 --> 00:35:59,119
you've got framework level issues so

929
00:35:56,880 --> 00:36:00,720
where you can either identify

930
00:35:59,119 --> 00:36:02,720
improvements that can be made to the

931
00:36:00,720 --> 00:36:04,800
framework that reduce the amount of

932
00:36:02,720 --> 00:36:06,560
manual work that people need to do to

933
00:36:04,800 --> 00:36:08,400
make things accessible

934
00:36:06,560 --> 00:36:10,000
or where you can identify outright

935
00:36:08,400 --> 00:36:12,960
errors in the framework that need to be

936
00:36:10,000 --> 00:36:14,480
remediated for it to be accessible so

937
00:36:12,960 --> 00:36:16,240
that's what you're essentially looking

938
00:36:14,480 --> 00:36:18,480
at there's a bit of nuance in the

939
00:36:16,240 --> 00:36:20,560
difference between a framework

940
00:36:18,480 --> 00:36:21,599
a framework level issue and a site level

941
00:36:20,560 --> 00:36:23,839
issue

942
00:36:21,599 --> 00:36:25,520
but in general you can assume that if

943
00:36:23,839 --> 00:36:26,960
you're building something on top of the

944
00:36:25,520 --> 00:36:29,680
framework and you need to do work to

945
00:36:26,960 --> 00:36:31,359
make it accessible it's probably on you

946
00:36:29,680 --> 00:36:33,599
whereas if you're using something out of

947
00:36:31,359 --> 00:36:35,440
the box in a framework and you find

948
00:36:33,599 --> 00:36:40,520
yourself having to build around it or

949
00:36:35,440 --> 00:36:40,520
rewrite it it's probably on them

950
00:36:40,880 --> 00:36:46,240
and the human aspect is really important

951
00:36:42,960 --> 00:36:48,240
to understand as i alluded to earlier

952
00:36:46,240 --> 00:36:50,480
it's going to be a very different

953
00:36:48,240 --> 00:36:52,560
scenario when you're dealing with

954
00:36:50,480 --> 00:36:54,960
maintainers who are very understanding

955
00:36:52,560 --> 00:36:57,280
of this or maintainers who don't know

956
00:36:54,960 --> 00:36:58,640
much but are willing to learn

957
00:36:57,280 --> 00:37:02,560
compared to when you're dealing with

958
00:36:58,640 --> 00:37:04,240
maintainers who don't particularly care

959
00:37:02,560 --> 00:37:06,079
but there are things that you can do to

960
00:37:04,240 --> 00:37:08,960
make this easier as well in the process

961
00:37:06,079 --> 00:37:11,200
of upstreaming accessibility

962
00:37:08,960 --> 00:37:13,440
you can talk to the maintainers about

963
00:37:11,200 --> 00:37:15,040
how the project is set up

964
00:37:13,440 --> 00:37:17,200
if you're pushing in

965
00:37:15,040 --> 00:37:19,200
upstream fixes and you don't intend to

966
00:37:17,200 --> 00:37:20,960
be involved over the long term

967
00:37:19,200 --> 00:37:22,880
make it as easy as possible for the

968
00:37:20,960 --> 00:37:24,960
maintainers to actually merge those

969
00:37:22,880 --> 00:37:26,640
fixes in so that means following the

970
00:37:24,960 --> 00:37:28,880
code of conduct following the

971
00:37:26,640 --> 00:37:30,880
contributing guidelines doing any

972
00:37:28,880 --> 00:37:33,280
testing that's requested

973
00:37:30,880 --> 00:37:35,599
and also showing your work in terms of

974
00:37:33,280 --> 00:37:37,760
what you've done what it resolves and

975
00:37:35,599 --> 00:37:41,920
how it actually improves the framework

976
00:37:37,760 --> 00:37:41,920
or component or reusable thing

977
00:37:43,280 --> 00:37:49,359
and this brings us to the concept of

978
00:37:46,119 --> 00:37:50,800
implementation and testing

979
00:37:49,359 --> 00:37:53,280
the

980
00:37:50,800 --> 00:37:55,280
sort of piece around implementing fixes

981
00:37:53,280 --> 00:37:56,400
is not one that i'm going to talk to

982
00:37:55,280 --> 00:37:57,920
very much

983
00:37:56,400 --> 00:38:00,720
and that is for the one very simple

984
00:37:57,920 --> 00:38:02,400
reason that i am not a web developer

985
00:38:00,720 --> 00:38:04,640
this is not what i do in my day-to-day

986
00:38:02,400 --> 00:38:06,960
job

987
00:38:04,640 --> 00:38:09,440
i can explain to you how all of this

988
00:38:06,960 --> 00:38:11,760
works i can explain to you how i think

989
00:38:09,440 --> 00:38:13,839
it can be done well but i cannot explain

990
00:38:11,760 --> 00:38:15,599
to you how to remediate the problems

991
00:38:13,839 --> 00:38:17,200
that's also going to vary vastly

992
00:38:15,599 --> 00:38:19,280
depending on what sort of framework

993
00:38:17,200 --> 00:38:21,680
you're using what sort of language it

994
00:38:19,280 --> 00:38:23,760
interfaces with and the specific type of

995
00:38:21,680 --> 00:38:25,040
reusable thing that you actually want to

996
00:38:23,760 --> 00:38:27,359
uplift

997
00:38:25,040 --> 00:38:30,079
so as far as implementing fixes my

998
00:38:27,359 --> 00:38:32,960
recommendations would be that you

999
00:38:30,079 --> 00:38:34,560
understand what accessibility issues are

1000
00:38:32,960 --> 00:38:37,280
that you test

1001
00:38:34,560 --> 00:38:38,880
your fixes for accessibility issues and

1002
00:38:37,280 --> 00:38:40,960
that you discuss that with other people

1003
00:38:38,880 --> 00:38:43,040
who are knowledgeable in the language or

1004
00:38:40,960 --> 00:38:45,119
framework that you're working on to make

1005
00:38:43,040 --> 00:38:48,960
sure that it would be an appropriate fix

1006
00:38:45,119 --> 00:38:48,960
and that it's also well implemented

1007
00:38:49,200 --> 00:38:53,839
my friend katie has inspired many many

1008
00:38:52,000 --> 00:38:54,880
aspects of this talk

1009
00:38:53,839 --> 00:38:56,720
and

1010
00:38:54,880 --> 00:38:59,280
is very very passionate about

1011
00:38:56,720 --> 00:39:00,960
accessibility but one thing that i

1012
00:38:59,280 --> 00:39:02,800
always really enjoy about working with

1013
00:39:00,960 --> 00:39:04,160
katie is at the end of it i come out

1014
00:39:02,800 --> 00:39:08,480
with much better code than i would have

1015
00:39:04,160 --> 00:39:08,480
had if if only my eyes were on it

1016
00:39:08,960 --> 00:39:13,280
the bit which is a bit easier to do from

1017
00:39:11,200 --> 00:39:16,640
a sort of run book is the accessibility

1018
00:39:13,280 --> 00:39:18,400
testing piece because presumably

1019
00:39:16,640 --> 00:39:20,640
well that's not always the case but

1020
00:39:18,400 --> 00:39:22,480
presumably if you're here at the point

1021
00:39:20,640 --> 00:39:24,640
of wanting to upstream accessibility

1022
00:39:22,480 --> 00:39:27,599
improvements you've identified that the

1023
00:39:24,640 --> 00:39:30,000
accessibility issue is there

1024
00:39:27,599 --> 00:39:31,920
and so testing in that sense is fairly

1025
00:39:30,000 --> 00:39:34,000
straightforward because it's about a few

1026
00:39:31,920 --> 00:39:35,920
things first of all being able to

1027
00:39:34,000 --> 00:39:38,800
demonstrate that the issue existed

1028
00:39:35,920 --> 00:39:40,160
originally and was repeatable sometimes

1029
00:39:38,800 --> 00:39:42,400
you can do that with automated

1030
00:39:40,160 --> 00:39:43,280
accessibility checkers sometimes you

1031
00:39:42,400 --> 00:39:44,960
can't

1032
00:39:43,280 --> 00:39:47,520
automated accessibility checkers are

1033
00:39:44,960 --> 00:39:49,040
only really half the story

1034
00:39:47,520 --> 00:39:50,800
it's about

1035
00:39:49,040 --> 00:39:53,280
being able to

1036
00:39:50,800 --> 00:39:55,680
verify that the accessibility issue is

1037
00:39:53,280 --> 00:39:58,320
gone once you have fixed it

1038
00:39:55,680 --> 00:40:00,400
and it's about being able to verify that

1039
00:39:58,320 --> 00:40:02,800
you've not made any other accessibility

1040
00:40:00,400 --> 00:40:05,200
issues worse and that you can otherwise

1041
00:40:02,800 --> 00:40:06,960
test and appropriately document the code

1042
00:40:05,200 --> 00:40:09,119
some of that as i said can be done with

1043
00:40:06,960 --> 00:40:10,880
automated checkers sometimes it will

1044
00:40:09,119 --> 00:40:12,720
require you to manually change things it

1045
00:40:10,880 --> 00:40:14,640
will require you to zoom your screen in

1046
00:40:12,720 --> 00:40:16,720
and out it will require you to use a

1047
00:40:14,640 --> 00:40:18,480
screen reader sometimes it will require

1048
00:40:16,720 --> 00:40:19,680
you to actually view things with sounds

1049
00:40:18,480 --> 00:40:21,599
off

1050
00:40:19,680 --> 00:40:24,160
there are many many different things

1051
00:40:21,599 --> 00:40:27,920
that you may have to do to be able to do

1052
00:40:24,160 --> 00:40:27,920
appropriate accessibility testing

1053
00:40:28,319 --> 00:40:33,119
the other important piece here is what

1054
00:40:30,960 --> 00:40:35,680
you as a maintainer need to know about

1055
00:40:33,119 --> 00:40:38,400
upstream accessibility because if you're

1056
00:40:35,680 --> 00:40:40,240
building your own system

1057
00:40:38,400 --> 00:40:41,839
you need to have again

1058
00:40:40,240 --> 00:40:43,119
a bit better than surface level

1059
00:40:41,839 --> 00:40:45,440
knowledge of what's going on with

1060
00:40:43,119 --> 00:40:46,800
accessibility if you want it to actually

1061
00:40:45,440 --> 00:40:48,319
be accessible

1062
00:40:46,800 --> 00:40:50,160
and that's about things like

1063
00:40:48,319 --> 00:40:52,160
understanding the automated checkers

1064
00:40:50,160 --> 00:40:54,560
that are out there it's about things

1065
00:40:52,160 --> 00:40:56,000
like understanding what you can't pick

1066
00:40:54,560 --> 00:40:58,400
up with automated checkers and you'll

1067
00:40:56,000 --> 00:41:00,720
need to test for manually it's really

1068
00:40:58,400 --> 00:41:02,480
really easy for things to disappear into

1069
00:41:00,720 --> 00:41:04,000
the ether if you don't know what it is

1070
00:41:02,480 --> 00:41:05,599
that you're looking for

1071
00:41:04,000 --> 00:41:07,599
even if they were accessible at one

1072
00:41:05,599 --> 00:41:09,520
point people can make changes that might

1073
00:41:07,599 --> 00:41:12,319
not be picked up by any automated

1074
00:41:09,520 --> 00:41:14,720
checking and so some of that as well

1075
00:41:12,319 --> 00:41:16,560
is if someone's come to you and said hey

1076
00:41:14,720 --> 00:41:17,839
i'm up streaming some accessibility

1077
00:41:16,560 --> 00:41:19,920
fixes

1078
00:41:17,839 --> 00:41:22,400
it's about understanding what you need

1079
00:41:19,920 --> 00:41:24,079
to do to keep the code base accessible

1080
00:41:22,400 --> 00:41:25,440
and if you're taking external pull

1081
00:41:24,079 --> 00:41:28,160
requests

1082
00:41:25,440 --> 00:41:30,240
understanding what you need to convey to

1083
00:41:28,160 --> 00:41:34,480
people to make sure that the code that

1084
00:41:30,240 --> 00:41:36,720
they're putting in is accessible

1085
00:41:34,480 --> 00:41:38,480
and as i said automation is only only

1086
00:41:36,720 --> 00:41:39,680
half the answer

1087
00:41:38,480 --> 00:41:41,680
ai

1088
00:41:39,680 --> 00:41:45,200
is not good enough yet that we can get

1089
00:41:41,680 --> 00:41:47,359
it to do accessibility for us

1090
00:41:45,200 --> 00:41:49,599
there are some accessibility issues that

1091
00:41:47,359 --> 00:41:52,079
have to be tested for and remediated

1092
00:41:49,599 --> 00:41:53,359
manually

1093
00:41:52,079 --> 00:41:55,200
and then there's a matter of actually

1094
00:41:53,359 --> 00:41:57,520
releasing fixes which is probably the

1095
00:41:55,200 --> 00:41:59,200
easy bit because at this point if you've

1096
00:41:57,520 --> 00:42:02,400
pull requested it following all of the

1097
00:41:59,200 --> 00:42:04,000
guidelines and it's been reviewed then

1098
00:42:02,400 --> 00:42:05,440
it will hopefully be released by the

1099
00:42:04,000 --> 00:42:07,920
maintainers

1100
00:42:05,440 --> 00:42:09,760
and from there you can look to

1101
00:42:07,920 --> 00:42:11,839
either helping them to continue to

1102
00:42:09,760 --> 00:42:13,440
uplift it going and building what you

1103
00:42:11,839 --> 00:42:14,960
were trying to build originally or

1104
00:42:13,440 --> 00:42:18,880
looking for other places where you can

1105
00:42:14,960 --> 00:42:18,880
upstream these accessibility fixes

1106
00:42:21,440 --> 00:42:26,640
i do want to briefly come back to the

1107
00:42:23,599 --> 00:42:29,200
point that i made earlier around

1108
00:42:26,640 --> 00:42:30,560
the ease of use of a lot of these

1109
00:42:29,200 --> 00:42:33,680
frameworks

1110
00:42:30,560 --> 00:42:35,119
because one thing to me that kind of

1111
00:42:33,680 --> 00:42:37,359
hinders

1112
00:42:35,119 --> 00:42:40,000
the web being accessible as a public

1113
00:42:37,359 --> 00:42:41,680
utility in the same way as metro trains

1114
00:42:40,000 --> 00:42:43,839
or yara trams

1115
00:42:41,680 --> 00:42:45,760
is the fact that

1116
00:42:43,839 --> 00:42:47,680
there's a big knowledge gap so a lot of

1117
00:42:45,760 --> 00:42:49,440
people don't actually understand what

1118
00:42:47,680 --> 00:42:51,119
needs to be done to make websites

1119
00:42:49,440 --> 00:42:52,960
accessible

1120
00:42:51,119 --> 00:42:55,520
and in some ways frameworks have made

1121
00:42:52,960 --> 00:42:57,440
this worse because people just take

1122
00:42:55,520 --> 00:42:58,880
things off the shelf and build with it

1123
00:42:57,440 --> 00:43:01,520
without actually understanding that

1124
00:42:58,880 --> 00:43:03,280
there's more work that they need to do

1125
00:43:01,520 --> 00:43:05,760
and that's why the dot gov dot uk

1126
00:43:03,280 --> 00:43:08,480
websites kind of built up the way that

1127
00:43:05,760 --> 00:43:11,119
they did is because if you are using raw

1128
00:43:08,480 --> 00:43:12,560
html and raw css you can take advantage

1129
00:43:11,119 --> 00:43:16,240
of all the features that are in there

1130
00:43:12,560 --> 00:43:16,240
and you have to know what you're doing

1131
00:43:18,720 --> 00:43:22,079
i want to close with a thought

1132
00:43:20,400 --> 00:43:23,760
experiment

1133
00:43:22,079 --> 00:43:25,200
imagine that all of the humans in the

1134
00:43:23,760 --> 00:43:28,160
world tomorrow

1135
00:43:25,200 --> 00:43:30,480
were turned into perfect spheres

1136
00:43:28,160 --> 00:43:32,560
and we had to travel around everywhere

1137
00:43:30,480 --> 00:43:34,400
by rolling

1138
00:43:32,560 --> 00:43:36,800
this immediately means

1139
00:43:34,400 --> 00:43:39,520
even if we have our own power we cannot

1140
00:43:36,800 --> 00:43:41,359
get into the vast majority of cars

1141
00:43:39,520 --> 00:43:42,880
only some public transport will be

1142
00:43:41,359 --> 00:43:44,240
accessible to us

1143
00:43:42,880 --> 00:43:45,920
there's a decent chunk of office

1144
00:43:44,240 --> 00:43:47,040
buildings that we won't be able to get

1145
00:43:45,920 --> 00:43:49,119
into

1146
00:43:47,040 --> 00:43:51,119
and there is a decent chunk of the web

1147
00:43:49,119 --> 00:43:54,800
that as a perfect sphere

1148
00:43:51,119 --> 00:43:56,800
we would not be able to interact with

1149
00:43:54,800 --> 00:43:58,960
if we don't have hands to deal with

1150
00:43:56,800 --> 00:44:00,400
keyboards or mice

1151
00:43:58,960 --> 00:44:03,520
then we're going to have to do things

1152
00:44:00,400 --> 00:44:05,280
like train voice activation software

1153
00:44:03,520 --> 00:44:07,599
and fundamentally what upstream

1154
00:44:05,280 --> 00:44:11,280
accessibility is actually about is the

1155
00:44:07,599 --> 00:44:13,359
concept of removing limitations

1156
00:44:11,280 --> 00:44:16,000
this means that if you want to

1157
00:44:13,359 --> 00:44:17,200
understand how to design things really

1158
00:44:16,000 --> 00:44:18,720
well

1159
00:44:17,200 --> 00:44:20,800
whether you be

1160
00:44:18,720 --> 00:44:23,359
someone trying to upstream accessibility

1161
00:44:20,800 --> 00:44:25,520
fixes or a maintainer accepting upstream

1162
00:44:23,359 --> 00:44:27,680
accessibility fixes

1163
00:44:25,520 --> 00:44:31,280
you've got to think like you're not who

1164
00:44:27,680 --> 00:44:32,960
you are you've got to think about

1165
00:44:31,280 --> 00:44:35,440
what people would do in different

1166
00:44:32,960 --> 00:44:37,520
scenarios and in some cases it can be

1167
00:44:35,440 --> 00:44:40,000
really instructive

1168
00:44:37,520 --> 00:44:42,160
to look at the bazaar to look at

1169
00:44:40,000 --> 00:44:44,319
situations like what if every human

1170
00:44:42,160 --> 00:44:45,440
tomorrow was turned into a perfect

1171
00:44:44,319 --> 00:44:47,040
sphere

1172
00:44:45,440 --> 00:44:50,319
because once you start thinking about

1173
00:44:47,040 --> 00:44:53,040
the bazaar and designing for the bazaar

1174
00:44:50,319 --> 00:44:55,760
you get really good at thinking about

1175
00:44:53,040 --> 00:44:59,200
humans and designing for humans rather

1176
00:44:55,760 --> 00:44:59,200
than just designing for yourself

1177
00:44:59,680 --> 00:45:03,839
i would not have been able to give this

1178
00:45:01,520 --> 00:45:06,079
talk without the wisdom without the

1179
00:45:03,839 --> 00:45:07,680
wisdom and expertise of others

1180
00:45:06,079 --> 00:45:09,839
specifically i want to call out the

1181
00:45:07,680 --> 00:45:11,359
three people that i named over the last

1182
00:45:09,839 --> 00:45:12,960
45 minutes

1183
00:45:11,359 --> 00:45:15,040
sherry burnham

1184
00:45:12,960 --> 00:45:16,880
for all of her body of work but for her

1185
00:45:15,040 --> 00:45:19,359
excellent blog post about how not to be

1186
00:45:16,880 --> 00:45:21,119
an accessibility grinch

1187
00:45:19,359 --> 00:45:23,520
jess budd for the stimulating

1188
00:45:21,119 --> 00:45:26,400
conversation that we had at ddd adelaide

1189
00:45:23,520 --> 00:45:29,200
in 2019 and for being willing to

1190
00:45:26,400 --> 00:45:31,200
understand my view and also challenge it

1191
00:45:29,200 --> 00:45:32,880
and change it

1192
00:45:31,200 --> 00:45:34,560
and katie mark for the many

1193
00:45:32,880 --> 00:45:37,119
conversations that we've had about

1194
00:45:34,560 --> 00:45:38,880
accessibility and for somehow always

1195
00:45:37,119 --> 00:45:40,400
giving me the perfect scenario to

1196
00:45:38,880 --> 00:45:42,000
illustrate the point that i've had in my

1197
00:45:40,400 --> 00:45:44,400
head that i didn't know needed to go in

1198
00:45:42,000 --> 00:45:44,400
the talk

1199
00:45:44,880 --> 00:45:47,760
i'm assuming that i have been answering

1200
00:45:46,480 --> 00:45:50,079
questions throughout the course of the

1201
00:45:47,760 --> 00:45:52,640
talk but if you do have more questions i

1202
00:45:50,079 --> 00:45:56,000
will be around later to answer them or

1203
00:45:52,640 --> 00:45:59,040
you can contact me on the um

1204
00:45:56,000 --> 00:46:00,960
information that's up on the slide

1205
00:45:59,040 --> 00:46:03,680
hopefully this talk has given you a good

1206
00:46:00,960 --> 00:46:05,839
roadmap to upstream accessibility

1207
00:46:03,680 --> 00:46:07,760
improvements that you want to see and if

1208
00:46:05,839 --> 00:46:09,839
you're a maintainer hopefully it's given

1209
00:46:07,760 --> 00:46:12,640
you a good roadmap to understand what

1210
00:46:09,839 --> 00:46:14,800
you need to do to keep your work to keep

1211
00:46:12,640 --> 00:46:19,319
your project accessible rather than just

1212
00:46:14,800 --> 00:46:19,319
making it accessible at a point in time

