 So good morning. So I would talk about accessibility today We have a lot of desktops in Debian and and we would like to talk about accessibility of these desktops So that there are all the slides and various stuff on on their wiki of debian.org in the accessibility dash main We peep wiki page so you can get stuff from there So just to give an outline so I will introduce accessibility then explain how the accessibility stack works so how you will interact with this in with your desktop and Provide you with a list of things that you could check by yourself to make our life easier I mean the accessibility team life So to start with this is the output of noob plot Can somebody tell me what the accessibility issue is there? I can't hear Yeah, you have green and red Bars, why is it a problem? Well, basically a colorblind people cannot distinguish between both Just to get you an idea how many people here are colorblind cannot distinguish at least some colors So we have one two one two people out of a couple of dozen and he did it's eight percent of the main people who cannot Distinguish color more or less it depends some people can distinguish a bit others really not I had a student who really could not distinguish them at all So in the practice room he would have to ask his neighbor, but which one is the red curve Noob plot fly noob plot five. Yeah, they changed the color set. So this was actually a Research paper which said okay. This is the proper color set that you can use and really almost everybody on earth can Distinguish them except those who cannot really and distinguish colors at all and still with the I mean The intensity of the color you can still distinguish. So yes things get improved It's not so difficult. It's just a matter of changing the colors But the most difficult part was knowing about the problem So what is accessibility it is contracted into a 11 y It means being you usable by people with specific needs or specific conditions or By anybody actually So of course The obvious is blind people, but also people with a low vision So they can actually see the screen, but not that good Deaf people it's not much concern with a lot of things, but still if you only Signal something through noise, then they cannot get it Color blind as I said people may have just one hand and to type control act backspace with just one hand It's really horrible Condition issues so people may have problems with understanding your software just because they cannot it's not a problem of making efforts It's really a Health issue Motor disability So it's it becomes difficult to use a keyboard when you have Parkinson's for instance And elderly people which basically have everything at the same time So you can have a look at the accessibility how-tos which talk a bit about all of this Maybe that can be you Maybe within a couple of decades because you will get older, but also because you break your arm or whatever So this is really something which is for everybody not only a small part of the population and still That there was a survey which showed that 10% of the people consider that they are handicapped in their life and 20% consider that they are limited. They can do everything they want, but it's it's it's a pain and quite often So handicapped depends on the situation Maybe it's just you break your arm or you're too small to get something or you're too tall to get into a room or something So it's not a problem of the person, but the situation And it's not necessarily permanent. Sometimes it's just you broke your arm for some time and then you're back to order And for me, this is all about freedom zero we have been discussing with Richard Stallman about this The freedom zero as he said was the freedom to run the program for any purpose but okay running the problem program is not really useful if you cannot use it and Almost said yes, it's just a desirable feature that you can use it. I mean because you're disabled Is that only desirable? Richard said well if you really need it then you can modify the software. It's free. Okay, but that cannot happen I will explain that later Just to give the UNO rights, so I put in both the interesting parts for us so there are rights of persons with disabilities and it says that discrimination on the basis of disability means any distinction exclusion or restriction on the basis of disability which has the effect of impairing exercise of all human rights and fundamental freedoms in all kinds of fields and That includes denial of reasonable accommodation and that's the point. I want to emphasize if you're not Doing the reasonable accommodation. You're actually excluding people and that's something that in the UNO Considered and what does it mean reasonable accommodation? It means not Imposing and disproportionate or undue burden So we don't ask the Debian project to do a lot of things We just ask for reasonable accommodations and we are trying to see what we can do Like this to make making things easy for Debian maintainers so that they have to do it actually in a way For us it's then a question of priority in the projects for us. It's a bit like internationalization It's basically the kind of the same issue and Everybody has to do it for its own language. Every package should have it, etc But then more importantly, it's a question of who doing it Accessibility is a problem in that it concerns a really small fraction of the people using computers They already have a hard time using computers and it's even worse with the accessibility issues and the thing is Since there are not so many disabled people almost nobody have these disabilities and the programming skills to fix them and still if you have the programming and Skills it's extremely difficult like for instance if you want to make the Debian installer accessible Okay, you get the CD you run it and then you don't have any output on your brain device What can you do? You have to first get a debugging environments, but nobody Thought about having a debugging environment without a screen. So you have to invent that first So it's really difficult for people with disabilities to get their thing done by themselves so then you would have a sighted people for instance who could work on it but people with with sight and the awareness of The issue and what could be done about it. It's even smaller And so this sometimes this is fresh off free software. You can modify it that cannot work because there are not so many people They cannot do everything So the support has to be Actually integrated into the process and the load of working on it and distributed among the maintainers Of course, we would like to make that load as light as possible to maintain us But there's no way around fixing bugs in applications So that the accessibility time community doesn't have to do all the work Okay, so that was just an introduction to accessibility in general, let's talk about hardware So people may use for instance braille input and output or speech synthesis. So that's mostly for blind people people with Motor issues can use just one joystick which would replace a mouse or They would just be able to press a button and that's still enough to get things done Thanks to a virtual keyboard or they could use just an eye tracking and by blinking the eye Actually a knowledge and what not we have a lot of ways for people to interact with the computer The thing is one shouldn't focus on just one technology for instance even for just blind people Braille is not perfect just because not so many people know braille actually I don't remember but it may be like ten or even five percent of the blind people only know braille And the braille devices are extremely expensive. It's like several thousands of euros And speech synthesis either is not so good in a lot of cases like if you have a noisy environment You cannot hear it or you are disturbing your neighbors And also It's really tedious to get words spelled because you have it letter by letter. It's much less convenient than reading it on a braille device So just to show what it looks like so braille cell so usually you have eight dots like this which make for one character and And the dots are moved upside and down and thanks to a piezo bar Which is why it's Expensive because that piezo bar it has no other use in the industry and so it's a really little market And so a braille device is simply that kind of cell duplicated alongside And connected through serial USB or Bluetooth and the price is usually the number of cells you have times 150 euros So with 440 character display You would have to pay like a few thousand users. So it's really hopefully expensive About software So it's more interesting for us The first question which is interesting is why would you take the burden of making the GUI accessible? There are a lot of text applications. You could do everything with this Well, not everything that that's the problem a lot of things on really not available in the text mode like a real JavaScript support in text mode is Actually really difficult because it doesn't sometimes even make sense for JavaScript to have just characters and not pixels And for business applications usually you have just a graphical one and you don't have a text equivalent so you have to have a way to use them as well and What's even more important is that? You shouldn't make people use a dedicated software because then they don't have help around them Because they are using their software and nobody knows how to use it except them And that's really a problem because then they cannot be helped by people Another idea is Let's make accessible software which is dedicated to people with disability So for instance we have edibros which is a blind oriented editor and browser and this is generally a bad idea Well from one because quite often it's dedicated to one kind of disability one kind of situation And it's not universal so you you would have to do it several times for each kind of disability but then also it's just a problem of Manpower as I've said and we don't have so many people working on this kind of thing And so for instance if you wanted to maintain a reposer you would have to implement javascript flash tables CSS Etc. So you don't really want to do that Or for an office street have the compatibility with Microsoft and whatnot And also it's also again an important thing which doesn't come to mind first The important thing is not only getting help but also working with people if you have the same software If you're used to use the same software then you can work together You don't have to play with format conversions Whatever or even just work at the same time on the same software Pointing at something then reading what is happening there then interacting with the other one within the software So that's why we should really make the existing software accessible instead of writing new software Um another important thing is we shouldn't make Accessible distributions well it can be a good idea, but in the end we want all distributions To be accessible because accessibility is completely orthogonal to any other concerns like blends and tasks. This is orthogonal with accessibility just like Be it a musician for medicine for teaching or whatever all these Specialized distributions. They should be all accessible. So it doesn't make sense to make an accessible Distribution except as being a test bed for experimental features that maybe want to push to users to make them happy and And test these things and then we can integrate them into all the distributions Um So ideally we would have accessibility everywhere like I enter a computer I enter a library There are computers to get the catalog of the books in the library Or you'll get to an airport and you have internet access there, but on the computer Or you get to the university and you have the practice room all these situations If you have just a brain device then you would have to ask the administrator to install the software and Configure it and whatnot. We do not want that you shouldn't have to ask the administrator because she's probably Not there and you would have to wait for a week or a month So ideally it should be just installed by default and ready for use So that means quite close integration with the system But for instance, we managed to get it in the Debian installer now It is the standard CD installation CDs of Debian is just you insert the CD you Boot the computer you hear beep saying you are at the boot menu So you can press enter and then you let it boot and it is actually showing the output on the brain device So that's really the kind of thing we want to achieve in the end Thanks Just a couple of more design principles. So as I mentioned just use the same software make it accessible Synchronized word as I said, it's just an alternate input and output and we were together in a synchronized way and Be pervasive so you shouldn't ask for software installation or configuration Okay, so that was Discussion now the rest of how how it looks like how it works and what we could check so in a few words text mode is really accessible, but At least for once it's not suited to beginners and GNOME is quite accessible one issue We had with was GNOME 3 which was almost a restart from scratch. I mean the Status of the GNOME 3.0 was really awful So we got to the point at the moment Nowadays we got to the point almost like GNOME 2 before GNOME 3, but it was really a pain And in the end we are really late compared to the Windows world. We have like a decade I mean we are a decade late compared to them and compared to the Apple world We are really at stone age You have to understand that Apple has integrated and good support for accessibility It's always installed. It's ready for use all the time and it's really good You really see people who are using free software etc And then eventually they saw that Apple thing and they said okay It is really working much better than free software. So I will switch to Apple This is really a shame for us. There is no reason why we shouldn't be able to do that good So more technically how does it work? The idea is that we have the application a standard application which uses its own abstract representation Through the toolkit to vision to render things visually and the idea is that we have a bus an accessibility bus Which exchange with that abstract representation? And so the screen reader can just go through this bus to access the text of the application And then render this on an accessibility device Whatever it is. Is it braille? Is it speech? Is it something else? I don't know But the idea is it's really generic so that we don't have to know and so just to give an instance so we have the X server and The g-date application renders pick maps to the X server It is pango which does the rendering but there is In GTK inside GTK the text which is what we want and so there's a part of GNOME which is called ATK which plugs into GTK to get that text and Provided to the screen reader so on Linux. It's called orca and then orca can output this through Braille or speech So we have this bus between ATK and orca. It's basically an RPC Bus actually so that is orca can ask for the text explicitly or it can ask for getting Notifications about the change so once it's registered then ATK sends a message whenever the text is modified So so that orca doesn't have to pull for and change And so it means that it's only on request from the screen reader So if there is no screen reader then there is no message on the bus So it's quite lightweight when the screen reader is not there So the idea is that the screen reader gets the extract Representation as a tree so we have the main window with maybe some containers and then we have the menu bar with several Items in them and then a text area, okay, but on etc So that's the idea the screen reader really have we has the representation of the application and then the user can go around it So technically speaking now a lot of applications are already technically accessible in that The text mode applications for instance, you can always get the text of course and GTK 2 and 3 are Accessible it's it's improving over years It's really in the states nowadays which can be used for everyday work and KDE I mean Qt actually has been trying to push for accessibility for a long time Qt 4 had some implementation which was a bit sketchy with Qt 5. It's much better So it is on its way and to getting really accessible Mono however had an accessibility effort But novel actually basically fight all the team the accessibility in 2012 or something and so It's not maintained anymore anymore and it has been removed from Debian because it was really not maintained so let's see acrobat reader is actually accessible adobe made the effort of Plugging the rendering of the PDF file into 80k so that in the screen reader actually gets the content of the PDF file and Then you have the other applications so Qt 3 or xd or applications which draw things themselves like xpdf These are really not accessible at all So to give an idea in Debian of the stack so we have real tty Which contains the drivers for Braille we have speech dispatchers which manage the drivers for speech Then for the bus and the accessibility debuffs We have the server part which is 80 80 SPI core which is generic all toolkits Use it and then you have the GTK ish part of it Which is TIL and lib atk and on the Qt side you have Qt 80 SPI And in Qt 5 actually it's integrated into the core of Qt And then you have the screen reader which is called orca so basically once you have all these installed then you have the whole stack for accessibility So now what do we want to achieve? Which is where I will be asking you for trying to do things What is the goal the goal is at the very least having the accessibility stack working on all desktops that is You can actually run it and it works. It is a matter of a few tests I will explain that so that you can actually include them in regression tests That would only allow to access some applications, but that's already huge in that If it's all desktops, which have it then a blind user for instance is not afraid of asking like a neighbor or a co-worker or whatever Can I use your computer just to read my mails or whatever? He it will not be convenient boy for the blind user But at least he will be able to work with his co-worker or whatever and that's already huge And then of course the trial would be that all desktops are completely accessible I understand that this is not achievable, but that's really the target We would have so that You would just be able to choose your desktop. So this is more involved. I've explained why So getting the accessibility that the stack working The goal is that you just run all car and it works Whatever situation you're in you have already applications running and whatnot and you just start all car and you Manage to read the existing applications at the moment. This is not enabled for all Toolkits it is enabled by default in GTK 3 actually in Jesse. So it does work with you know But not with GTK 2 Qt 4 Qt 5 quite often people would say yeah, but there might be bugs It may it may makes things slower Okay, but we are at the beginning of the release of the development of stretch Maybe it is the time to just enable this and if there are bugs, let's just fix them There's no way forward except that this we've been not enabling accessibility for like a decade Maybe now is the time to just do it and then Thanks So the question is how do you test this? So I'll explain the details and then you'll see that we provide scripts to do it for you The idea is that we have that accessibility bus running So there are some demons running you have to check that they are running And there's a script which deltas Automatically normally, but maybe it does not for your desktop and when it is running you have actually a D bus specialized bus for accessibility and the session bus should be providing it is its address so that applications can find it and also their XOR route window provides the address as well and Then we have to have the toolkits enable their layer for accessibility And so all of this is actually checked with a small script that I've written and it is available on PKG, Eleven Y So you can they all point us to this on the wiki page accessibility and that wasn't developed main But there are links between accessibility accessibility the devil and accessibility main So you should be able to find it. So the idea is that you clone this repository There is an off.sh file which you can source to basically Define all these variables to enable accessibility in GTK 2 Qt 4 Qt 5 etc And once you have this you can run make check which runs Gdq2, Gdq3, Qt4, Qt5 applications and check that they are really accessible If they are not or for users who cannot manage to get their thing working there is a troubleshoot script which tests every bits one by one and Tells you this is not properly configured. Maybe that's the issue actually And also you can run or car minus L to get the list of applications. So it's a quick test really So you can just run like genie or g-edit or whatever GTK application and check that all come in a cell See is that if that's the case then then probably the accessibility stack is working properly Okay, so that was a part that you can do The first part of that you can do another part is how the user will start or car So of course in the foreign user use case So disabled person uses the desktop in the desktop of somebody else He can ask somebody else to run or car for him But a shortcut would be really welcome so for instance when you go to a library or whatever you want to use the computer and GNOME settled on using super alt s to just start screen reader Our concern is that okay GNOME chose that maybe KDE will choose something else, etc It should be extremely convenient to have just one so that you don't have to ask which desktop is that alright this desktop I remember that it is that shortcut so The problem we may have I don't know is Deciding on a universal shortcut which doesn't conflict with any other shortcut in any desktop So I don't know maybe super alt s is already fine Maybe that's something that should be discussed at free desktop. I don't know. I really don't know for this For the installer for instance at the boot menu you would type s and enter to select Speech enabled installer so Maybe just try to have just one And maybe also we could auto start it when you plug a USB Braille device That's that may be Useful, but as long as we have super ass then we are fine with starting orca, so Maybe it's not so much worth spending efforts on Auto start on plugging a USB Braille display and really get that shortcut running For the regular user you want of course orca started automatically you don't want to have to start it by hand each time You want to use your own computer The thing is There should be at least two things there should be an icon in the interface so that like the Administrator of the machine enables it easily finds it easily and that icon also should be accessible just because Disabled person might want to interact reading of war That hasn't been always the case sometimes the accessibility icon was not accessible in some releases of software and The second thing is having a common line interface for enabling it quite often It is the case, but the thing is please tell us which one we should use in the Debian installer so that when the user installs Debian with accessibility enabled in the installer then we enabled Accessibility in the installed system automatically So we are fine with having to deal with check of G settings except cons whatever just give us a way to do it and Document it so that we can do it And eventually we would like all desktops to be completely accessible So that means making like the start menu the panel task switching all these tiny bits of a desktop to be Accessible, so if your desktop is based on GTK Qt, it's quite easy because the toolkit does it for us You should still check out what orca and Exerciser are saying I will explain that a bit later And also that everything can be achieved by using just the keyboard It's really important some people just cannot use the mouse and they can see and use the keyboard but also blind people really like being able to do everything with a keyboard and speech output and If you can do that with just a keyboard no cheating with the mouse then that's already quite good If some of the parts of your interface your desktop interface or self-drawn not using GTK or Qt Then you will have to implement accessibility yourself. So interface with a TSP I may be by using ATK or talking the AT SPI protocol natively yourself It's it's up to you, but that's the kind of drawback for using a self-drawn widget So at the moment Mostly on Ignome and matter are really accessible like this. I mean really usable with keyboard shortcuts, etc XFC and LXD start being accessible. They don't always have shortcuts. So we wouldn't recommend this So basically people only have two choices for desktop at the moment. That's really sad So to develop accessible applications more generally The idea is that you should not design your interface with the GUI in mind, but rather start with the logical Way of thinking about your interface first because then the screen reader since it sees that Structure of the application and not the visual Representation it will be easier for disabled people and Actually, in the end it will make your code much better to make it structured logically instead of graphical and As I said better use standard widgets because then they have integrated support for accessibility and also make sure to use the proper widget for What you want to do so for instance if you have a Text field to be filled and then a label in front of it You should use the label text field widget which makes a relation between the label and the text Otherwise the screen reader just notices labels text. It doesn't know which is which So avoid homemade widgets or you have to implement accessibility yourself And if you put an image of course provide a text alternative for the screen reader to give to the user and Keep it simple for people with cognition issues But also for blind people if there are too many things to two complex and dial box or whatever It will be tedious for them and it's also for your regular users if the interface is simple then it will be easier for them So quite often you ask okay, but I would like to test myself Orca has a Braille monitor So what you can simply do is running or car minus e Braille monitor to enable it and then just work as usual with your desktop Only using the keyboard don't use the mouse and then check that whatever you're doing appears on the Braille monitor and that it is correct and and There's a crash test that you can do is to just turn on the speech and then switch off the screen and then you try to work and your They're trying to tell me something, but I Oh, really sure sure So try to just switch off the screen and and work and you will see that it's difficult Even developers of accessibility who are sighted Don't always do that and then read the realize when they do that. Okay, there was one thing which I didn't realize That it wasn't working just because I could see the screen There's on the condom dog a guide for developing accessible applications You should have a look at it. It's quite interesting Then there is exerciser Maybe you will not use it because it's a sort of debugger and the idea is that it shows the tree of widgets and you can have a look at the details and Check the properties that the text is really right or whatever So you can try to use it But most probably you will want to just use or car and check quickly what is showing up Um One last thing about bugs One thing to understand is that the users the disabled users are in different Situation than you so if they make suggestions like in a web browser put brackets around URLs which are clickable and then do that at least as an option because it is really useful for You as a sighted person wouldn't understand why but they do know why and so okay make it an option and the users will enable it It's extremely difficult to deal with accessibility bugs because it's already not easy for the people to use your software because of hindrance or whatever but it's even more difficult for them to report bugs because They have some output on a Braille device or speech or whatever and they don't even know what they are supposed to have because they cannot see what is on the screen and the So it's difficult for them to understand what is happening and so even more difficult to explain what is happening So yes, the only a way out is to discuss and take the time to discuss its long But there's no other way Remember to ask the user for a screenshot. They don't necessarily remember about doing this Try to think about it because it's actually easy for them to do. They just don't think about it And try to keep in mind that disability and consequences it was quite fun a few years ago During the discussion with Debbie and boot When we talked about making the frame buffer accessible Some people some person said, okay But then if the frame buffer doesn't show up nicely the user will not be able to report the bug about the frame buffer Not showing up nicely Okay, but he doesn't care He won't see it anyway. So that's fine. We can leave the bug so it's kind of Situations where you have to think The situation you could even just contact an institution near you to discuss directly with users There are a lot of them all around the world. So you can try that Okay, so to conclude Quite a few of your desktop users need accessibility really needed in any kind of situation So we really want to make accessibility mainstream and we can do quite some work But we need your help for this. So you're welcome. Thanks Thanks a lot somewhere So are there any questions? Yeah, excuse me. Do you know the current status of Chinese Japanese or Korean support on the braille display? So on Braille display I don't remember exactly which braille tables we have And tables Text so Korean we have a table for this Japanese We don't seem to have one and Chinese we do have I don't remember where but we do I know that there's a proper table for Chinese Japanese I'm surprised that I couldn't find it. But at least I think this is something which which already works It has improved a lot since the desktop went to UTF-8 by default So nowadays it's really working. I think not on the text console on Linux because Linux support for double-wits Glyphs is not really good But on the desktop. Yes, it's really working Any other questions? Well, what do you think could be doable at a Debian? Oh, sorry. What do you think could be doable at a Debian level? I don't know on the archive or process to I don't know For maintenance and developers to be aware at least when they push something that it breaks a feature or Oh, you mean if if some desktop breaks accessibility support? Yeah Yeah, I was thinking I've written a note about it to make these check On on a VM somewhere to run it all periodically on all the desktops and then have a red light in the tracker page of these desktops so that maintenance see oh, there's a problem here and then a link to the wiki page so that They test themselves and then fix or at least ask for help for fixing it But yeah, that's the kind of thing as usual making accessibility Not a special thing but just in the usual process. So like all these lights in the tracker page So I have a question about these Special widgets that you talk to upstream GTK or Q'd to just disallow special widgets Which are not accessible or is there not possible technically? So you said that it's problematic if people come up with their own widgets Yeah Is it would it be possible to just disallow it or block it if they are not accessible or is that technically not? Is that a technical solution to a social problem? Yeah, I think that's one of the issues I mean people not aware of the problem It is that the development tools not always remember remind the developer about the problem like if you run glade and Do an interface it should tell a give warning you didn't put an alternative text for an image, etc and Yes, but when when people write c code I Don't know how how to tell them that's that's bad. Is there any other questions? This one So you talked about people being able to turn accessibility on during the installer. I Had an idea. Sorry. I couldn't hear you talked about during the installation People might press s or something to turn the accessibility on I Think Apple have it turned on by default Well, Apple has it available by default. Yes, and you have to type a short cut I don't remember the shortcut for Apple, but yes It is available on all the time on PC on Mac and on the phone as well Because I was thinking I mean it's no big deal to me if you turn it on and My computer starts talking at me or whatever during the installation When I see turn on that means start talking and blubber so it will make noise So There's no any other questions. Let's up. There's one So the installer booting off CD and it beeps as it boots Is anybody has anybody checked UEFI boot to see if that works the same way? This is it again the UEFI boot If you boot the installer CD, yeah, I honestly don't know I haven't thought to check until just now Does it work if you boot via UEFI instead of by but I think it's really independent of the firmware The only thing is the boot menu where we do have to have a beep exactly and that's Something I didn't test myself So for UEFI we boot grub instead of iso Linux, right? No, if grub doesn't grub doesn't grub does have a driver for PC speaker, so it can be actually I Just write a note about Grub beep if you can check that let me know and we can we know we can fix it if it's not working Thanks And I was happy to notice that the live CD of the PN actually has the same kind of beep I don't remember asking for it. So it really shows that things are going Okay, so we're running out of time. So let's thank Samuel again