 This is not me. I'm standing in for Bubli today. Unfortunately, Bubli couldn't come. It's an unlucky situation here at Fostum if you have kids. So we're trying for a number of years to get at least some self-help room here, but it's all kind of complicated. So this year Bubli said, I'm not going to look after my kid on the dirty corridors, and she stayed home and sent me. So all the errors and mistakes are mine and the good service from Bubli. We're working for CIB with our company, and this talk is about accessibility, mostly for developers, but I think it's a topic broad enough and there's so much to do that I think there should be something for everybody to take away. First of all, accessibility. Who knows what there is in this context? Anyone? Stefan, I know you know it. So, well, let's check Wikipedia. In the context of software, it's mostly used for technology or some part of a program that is there to make a computer or a technical device usable or easier usable by a person with a disability or impairment. And these days I'm actually talking about disabilities. Well, we try to avoid that, so we rather talk about accessible software or accessible rooms or accessible restrooms or toilets or something. So that's accessibility in this context. What this is all about is that doing something that is accessible in software land these days is not particularly hard. So the problem is rather not that it's hard to do. The problem is rather that people are not aware of it, what to look for, what not to do or rather what to do. And you don't have to have any disabilities to be able to do something, to check something, to make something accessible. And this is more or less a pet talk to encourage all of you, first of all, to tell you how to do it and then encourage you to do stuff that is accessible from the get-go and people need to write bugs about and then laboriously fix it afterwards. So yeah, why don't we do it in the first place? So first of all, at least that's true for me. I'm mostly not aware of the things. So since I'm not impaired, my vision is not impaired. I don't know, my motor skills are not impaired. I tend not to notice if I do something, especially in the user interface, that is not accessible. So this is awareness. I need to know what to look for. Second problem is there's always too little time. So either if you're a volunteer and it's already, I don't know, two o'clock in the morning and you just want this patch merged or if you are on a contract then it's always too little time, too little money and too much to do. And user experience and accessibility tend to be secondary concerns and that's sad and it doesn't have to be like that. And third problem and that's kind of ties into this awareness issue is that development teams tend not to be particularly diverse. So again, people are not, tend not to be aware of what they are doing now. But let's change that. So let's make people aware. So we all can do something. It's just a little motivational image here. I really love those. So you can, all of us, we can all test for accessibility things or problems. I will talk about that a bit later, what to do. What else can we do? We can find a file box if we find something. So that development becomes aware of it. We can fix quite a number of easy things directly in Glade, which is the UI editor for LibreOffice. And last but not least, of course if we're hacking then we can also tackle perhaps the more challenging problems that are only fixable if you touch code. So that's the how-to. What to do? Four simple steps to get quite a long way towards something that is usable for most people in need of accessible software. Magnifying glass. So you can, and you're usually in your desktop environment or on Linux or on Windows you can increase the font size for the user interface. Do that and check if things still look okay. Nothing is cut off. Everything is somehow, even if you need to scroll a bit or if you need to move things a bit around but it's still that you can get to the user interface controls that nothing is hidden, nothing is cut off. There were a number of very obvious bugs like really absolutely bleedingly obvious. For example in Calc those sheet menus, those tapped sheet names, they were just not scaling with the font size. There was a hard limit there. So if you scaled the font above, I don't know, 15 or 16 point it would just be not reacting anymore. So the rest of the user interface would scale, but not that one. Same story with menus. If you make your font, your user interface font large enough suddenly the menu wouldn't fit the screen anymore. So if you want to change the font back while you're out of luck because tools, options, you can't access that anymore. There was another fix that went into 6.0 so that you can just expand your icon so you can just click on that and get the rest of the menu still displayed. All of that is like bloody obvious but you have to actually scale up the UI font to notice that. Keyboard navigation. Keyboard navigation is a very, very, very good example for something that benefits everybody. I mean, at least it benefits me and I guess many other people who really don't like to push the mouse around all day and rely on keyboard. So making sure that LibreOffice is keyboard accessible is great for power users, is great for hackers and is also great for people with accessibility needs. How to do that? First of all, we need to make sure that controls have either the control itself or the control label has a mnemonic label so that you can press out and this label character and then you can get to that control. So, and it's also when you do that you get something for free which is proper screen reader output because the screen reader, if you do those labels, control labels correctly and then we'll get to that in the next slide but if you do that correctly, the screen reader notices oh, this is a label for this rather complex list box here and it tells you what this list box is and if you don't set this label properly then the screen reader will read some weird gobbledygook internal names but again, it's something that you can test by using a screen reader if you don't want to do that. The next thing is just check if the mnemonic labels are all set. Parts of that, I think there might be another talk about that parts of that can be automated so you can have something like a regression testing script that kind of makes sure that user interface elements follow a number of constraints but it's also something that you can just be aware of like if you do UI, just be aware of it make sure if you put the label there that gets the mnemonic character and it gets this association with the actual control so, yes, how to do that so it's a good example of something that is not really accessible enough so what should have happened is oh yeah, well this is probably because let me use a 6.0 so now I press, if you can see that from behind if I'm pressing ALT, I'm now getting those mnemonic characters here so if I'm now at the E I get the second entry box down highlighted so it's easy to do just if you're hacking UI, check if this actually works second thing to do if you're doing that make sure that this association is correctly set up so for that we need glade we need to get it to the foreground and for that maybe I need this so this is a LibreOffice dialog that I've loaded here it's an Impress dialog slide transition panel and highlighted here is this a bit bigger control that has the label, this one here so those two should be associated with each other so what you need to do for the label is first of all click this use underline it enables this feature with the mnemonic character and then you need to associate that with the actual complex UI control and this is the sound list and you get some selection here so if this is correctly set here but if it wouldn't be you can click on this edit button and you get this selection box with all the controls in that dialog and then you pick the right one and set it there and then it's associated in glade and then you save it and send a patch to Gerrit good and that's what I mentioned so there's going to be some work there to check that automatically the thing is you can check automatically but you can't really fix that automatically so that there's still some manual work there to fix it up but it's a known problem and it's going to be worked on next one is to navigate UI between not only in a single dialog but if you have the full LibreOffice UI so the trick is always press F6 so now you see the menu bar is highlighted I press it again, now it's the first toolbar now the second toolbar third and now I think I'm in the yes now I'm in the document so make sure that this is a functioning cycle so that in the end you end up there at the beginning there's a buck and impress when you have the slight layout panel open you get stuck there so you can enter but you can never leave like Hotel California which is a nice place to be but maybe not for a blind person who then can't get the cursor out again so just again being aware of that just play with that if you notice it doesn't work file a buck or if you're a hacker go fix it oh we're time wise so yeah this is some F6 when you are in those toolbars or in the document inside that it's like inside the dialog so you can tap travel between the controls check if every widget accepts the keyboard focus so that you can type something there and probably more important if you change things does the order of traversal still make sense the focus jumping all over the place okay this is more for the hackers so if you're hacking user interface make sure you set the right flags on your controls, on your windows so for control for something that can accept keyboard input make sure you have to tap stop flag set for something that is a control container like the outer container for control make sure the style of control flag is set and for something that is a bit more complex like for example a list box that itself contains controls again like the extension manager has this rather complex list box where you have this enable buttons in per entry so those complex controls that need tap traveling, focus traveling inside they need this child dialog control flag yeah this is the number of assorted bugs here that part of them part of them were fixed part of them are still there I mentioned this problem with the impress side panel where you can get stuck with your F6 and the last one let's maybe skip that in favor of questions of course non-textual content like document content should better be accessible as well so that means for pictures, for videos some useful alternative text some label that a user knows what that should be and as a good example news score extension does it wonderfully the default that we have in writer is not so great because when you insert a picture you're not getting prompted even it won't be pretty easy to prompt the user when it's inserting an image anyway preset perhaps with the file name so that people can click it away if they don't care so much but at least give the option there okay I think we're running pretty much out of time so the answer to questions is not no but it's a funny picture so let's open for questions quickly anyone in addition to that you do not have to say yes or no design team worked on a guideline for the sidebar to go with how to travel through the sidebar which has a lot of controls and you don't want to press tap tap tap to go from first control to something on the end it is a complex thing can you send me a link to that so those slides have annotations, they have notes and I'm going to insert that link there and I'm going to upload the slides after this talk to the FOSTA pages so you can find it there from the program and I'm going to add that link thank you yes so the question is are there any good screen readers to be used for development I think NVDA would be a very good screen reader I suspect but that's not, I'm not the expert here maybe someone from the audience can recommend something here so the answer was Orca on Linux Orca yes and NVDA on Windows and VoiceOver on Mac which just comes with the operating system sorry we are out of time happy to answer questions outside or later thank you so much