 Hello, I'll try to have something to say now. We'll see I will have a couple things, but still So I am Cornelbeau van Ling. I'm working at Ipra. We are a small French company that focuses on we started focusing mainly on Proving a fixing accessibility and proving as is accessibility enables computers and solutions to Impress people at various level, but mostly in low vision And we developed more also Trying to to teach More widely like how to use a computer in many different situations for everybody that did not know So usually it's the elderly people, but we also have a lot of Overlap between these two things because there are a lot of elderly's that have low vision or come with a RMD Later in the age. So we have a lot of all up, but we're doing both things at the same time And what I've did to LibreOffice lately is adding and improving accessibility testing and For now it's mostly Framework kind of thing. I didn't add like a million tests I mostly added some ways to for you guys to write more tests So do but we'll see that So again, that was an idea, but you saw it from me. What is accessibility? It's feature that increase social activity. Usually for users, we seem to search in impendments as we should retail tell us I have another source, but yeah, check us out. What does it mean actually? It's pretty spot-on But it infuses a But there's a lot of different things that encompasses like the most Visible ones are the visual things For people without disabilities Like high contrast Adjustments for color blindness like if you've got if you don't see some colors, it's there are Some tool to help recreate at least contrast to to bring back the information Losing colors, but bring back the information Visual clues for this lecture, for example, I think there is a LibreOffice extension that can do that already like highlighting Sounds in the world inside the words and different Yeah, where where sounds changes specialized fonts for mostly low vision To help differentiate Characters that might look similar some are very ugly, but they seem to work And we have the special input device like motion tracking if you don't have user for your Motion issues virtual cable keyboard, which is a thing also for accessibility and We of course have the specialized output like Braille or the most common audio for screen readers, but there are many other More niche things You can try and find everywhere And We do have then these assistive technologies without the software, but usually software somehow web and mostly software That help you interact with the computer That includes screen readers or zoom like the magnifier and numbers are all the tools that do the same and More specific Specializers as well. So as a screen reader Michael told us what it is. I don't have to go too length to that. But basically It should enable somebody that does not see the screen to navigate it so It can do that in different ways and different screen readers have different ways of doing things most of them do everything to Make to adapt to what you like, but one common thing is to present The object you are With the focus But it does not really help to navigate the interface so some Sometimes you have tools to Jump between things as they are visually on screen like navigate to things on their rows or columns Or navigate the row Tree of accessible elements like Michael told us there were parents and children. So you have like a tree of elements between they're containing like a Container with a menu bar and and the document etc. And that mess and you could also navigate that and so that different techniques used in different situations and These tools need information from the clients as Michael also told us And the clients are the software like Librofis here And they do talk with the screen readers using the platform interfaces 80 SPI MSAA AA2 and SSS a sexuality UAI or All those and there's also Android as is his it's thing Is probably using as a second accessibility, but I'm not very knowledgeable bad, but I enable the software to Present itself to assistive technologies in a way it can interact with them So basically it's making the interface face a semantic document if you will And it's some partially allows to interact with with the software as well Like Michael says there are some Things to change values even modify text, but it's not Modifying test for example is not the preferred way to really interact with a text like in your document You're not supposed really to use that Mostly, you're supposed to have the software work Like it would for anybody like you'd use a software features to interact with the text and not Go around it using The accessible interfaces exposed to the system You could do that. There's some use cases, but usually we try to avoid it and just make the software usable and in Librofis What is the most Important thing if you will So it's the accessible interface a whole Librofis expose itself to assistive technologies It's how you can navigate inside the interface. So usually keyboard navigation because it is by far the most Accessible of all and most a Specialized device somehow emulate a keyboard and It has this very Important difference like if you can go to a mouse that you have a current Position that is on something like a current button current position is outside of text and You can move Back and forth to it. You don't you're not trying to find something That might or might be that you can know if you don't see the screen You don't you have no idea if you move your mouth to the right will it finds anything Maybe maybe not that happens. Where is the mouse? Normally with keyboard navigation like tapping through an interface you go to something else You might not know what it will be Where is what you're looking for? But there will be something so you're going forward in your interaction with the the software and There are the visual adjustments that I won't talk much about but it was it's the same I already mentioned like low high contrast color inversion for like if you got Light sensitivity Ah Helps for dyslexia or anything else and so testing actively in Lord Brofis We got several things So the first one or the one which is there It's not true, but the one I will talk about and it's the newest The oldest newest thing if you will so it's the one which is there for the longest time that he's kind of Not from this at the early Sun era is the linting of Validating of the UI dialogue the dialogues mostly, but the UI definitions of those dialogues. So Michael mentioned it. So there is a tool with the very nice name of J gl a 11 y that looks at the The definition Sorry That looks like the definitions How well that the XML and tried is to find things that should go either find labels that don't seem to That should go to some with something but it's not Linked so there is no relation between between this label and I control and The other way around controls that are often that don't label themselves But don't have a relation to a label and it's the most common problem inside Regular dialogues is that you have a control, but it has no information to what it controls You might have a label that says like This is something Column and then you have another control, but a screen reader cannot any artistic technology, but for example a screen reader cannot Know what that control goes with so is that description for that control if there is a relation There is a way to tell it's how you told it But they're none. There is just two different things one label that you might never see because you usually don't do not in trouble move through labels and because I'm not focussable and One control that doesn't do what you don't know what it does. Let me try to change it and see what happens but this tool is clever enough to Find both suggest what might go together and most importantly it has been done in a way that Has very low False positives so usually if it's reports an issue there is an issue. There are they can be situations where it's wrong We know at least one that is not wrong with and flexible at the time But it supports Sorry, maybe I'm in front of everything So you have got suppression lists which and false positive lists full positive lists are for real things that are Well, think that I reported by the tool and that are not an actual issues are probably in the tool and Suppression lists are just to get rid of issues. So what we did at first. I don't know what you have my Yeah, what we did at first when introducing the tool inside LibreOffice system and TI was to put Basically everything it reported into a suppression files. So we could See new issues Because there was I don't remember the name the numbers, but it was hundreds there and it was reporting hundreds of issues So it was just daunting and you know, nobody would notice that one hundred and one New issue and we cannot stop the the the build because of that new issue and This tool can also to some extent Learn be taught about new elements without altering the tool. So you could basically tell it this This XML node should behave Like something like it basically what Michael told about roles. You could basically tell it This behaves basically like a button or basically like a label and things like that. So you could If we had an element didn't know about but should to do its job properly You could tell it. Yeah, treat it like one of those things. They already knows or we can extend the tool if need be And the good thing is again. Yeah Yeah No, that's an excellent question, but I don't know I think the suppression list are still the same size Because they were not cleaned up, but some issues has been fixed So we need that's the thing we need to do with those is to review everything At the time, I don't know Yeah, it is That's what I'm mentioning. It is boring It might be tedious and time-consuming But it's quite easy The easiest solution and that's what I would start with would be Get rid of well move the the suspension five hour away and see where we get Is it better or is it still a mess in that? I expect it to be better really we have we had Fixes in the area and Michael did some but did you remove the Suppression that goes with it. Oh Okay, okay that I didn't remember sorry, so maybe the suppressions are still quite long But Again, we need to review that and move the if there are real false positives in those lists move them to the false positive lists and the other ones fix them and So we might need reporting everything all of them as a different back to Michael Or or just see what way needs to be done and usually it's very easy and the tool even tells Hints you to what you should do But usually the process is very simple of just adding a relation between the two things that goes together It's usually just as simple as that and you you get to edit to modify just the you are definition for text XML a definition for the dialogue and you have Fixed the issue you remove the the entry you get something to somebody to validate your your thing Jenkins should and you should be good to go And if you're interested you can look right. I don't have the sources Well, I want to open the source right now but you can look it's in the salam sanitizers UI and there is I think two directories the deeps of suppression fires So apart from that we have the old Java tests some of them and not all so useful because some of them were Probably It's all speculative because I never met anybody that wrote any of those but some of them seem to be exercising the test framework Which makes sense, but it's not an actual useful test of the interface Some people might run them, but not everybody does many are even disabled because they caused problems with issues nobody knew How either or how to fix or what did I even mean? So there are a lot of those there are just Disabled so they don't run but the good thing is it's fairly easy to port to see if the unit and Those most more people run them and the CI run them runs them It's if you know anything about you know in Java and any C++. It's quite trivial to do It's harder if you try to use The result of my work because you have to adapt to the simplified versions it could use but it's still the logic itself is very It's very similar. There's not nothing Java specific or anything like that. So it's plain you know using the the x accessible interfaces and sometimes others to do to interact with documents, but it's just you know and If you're interested in seeing the the conversion from Java to CPP unit J unit to CPP unit. I've got an example in that wiki page and a lot of other things on that wiki page and Now so that's what I've been working on lately. It's been one and a half year, but lately as I lately Is internal to be unit test for the Okay for the internal you know interfaces So what does this do What should do is interact with the UI just similar to what an asset technology you would or a user would to be closest to possible to what actually happens in the field and There are helpers for that and we got so even support for dialogues, which was a big thing, but it worked No, it does not all word work on Mac OS if anybody knows how to fix that please I'd be more than more than happy to Try and see if I can help in anything, but I'm not knowledgeable about Mac OS much And we have a weird issue. Nobody figured yet and That's a framework I worked on so basically helpers and base classes and everything to make your life easier writing a test but in the process, of course, I wrote some tests some tests that exercise the framework and some tests that test real things because we found some issues in the process and wrote tests for them and Michael and others fixed those. Thank you But we need more so you could again look at that page which has most of the Developer information you might need but APR I had to use it kind of tutorial if you will And if you want to write a test it should be fairly easy using that that it Does like any any other kind of test. You should just have to write the actual thing you want and not like if you look at the Java test we had Usually it's a lot of boring boilerplate because there was no nothing to help And finally I added a VCL plugin layer CPP unit test Quotes because it's written C++ and it used this framework, but it's a bit different And it tests at the time and only have one for the GTK 3 VCL plugin And it runs in CI with basically no problems ever No, actually we have sometimes we have failures that we don't know Why they happen They look like time-outs but We need to know more on why is that it's it's not bad. I don't know if we have numbers I need to talk to people to know if I can get numbers and links, but They show up from time to time in the ESC reports. So you might have seen them but it's Not too bad. I think we got like Sometimes we have four or five in a week and sometimes we have none But it I don't know. We need to figure that out But it works pretty well And none of those issues are tests Failing like it's never that The tests should Find a value wrong. It's just that somehow it time out times out at one or the other level You know test itself times out of one of its requests communicating with the labor office times out because what we do with what I do in those is to Take in a CPU unit test I take I walk the internal, you know representation for the for the interface and I try to see communicating with the platform similar to what An assistive technology like a screenwriter would Use and I see I compare whether the information match with a little bit of transformation to to match the What the VCL plug-in did because in some area as Michael mentioned there are coordinates. There are different In different colony systems or different little things that up and We got some things Fixed and discovered fix the the first one the funniest one. It was that we didn't have any Description for anything on with using the GTK 3 VCL plug-in and that was a real Obscure a chain or a chain for a real a pure issue that chains a class layout and a broke something But it was it called discovered and fixed so it kind of works It probably kind of works because it can uncover issues and does not For now have false positives Once but we need more coverage because I only covered a subset of the interfaces that exist I didn't go through everything and even not everything on Michael's list he showed so It has just for like the basics He showed up on the exa-exa-accessible context and have something for the text and a couple of things But we need to extend that to anything that exit to all the unit interfaces that can exist and Hopefully it could inspire other VCL plug-in tests for all the platforms in Windows Mac OS cute or anything. It's a different Work especially in Windows and Mac OS because you cannot use the same library I'm using to communicate with the platform. You'd have to use whatever the platform Has but something similar should be should be doable So to summarize we got currently at test. We got the static analysis of your definitions Which are is the jail g l a 11 y tool? That runs in CI We've got the CPU unit tests for the internals Mostly the framework, but we could have more tests of that is pretty easy and we got these things singular we still plug-in tests have put Plurals, but it's a lie and this covers basically everything from the With the internals to reaching the user so we have we can be sure that if we fix something in the internals likes exposing something or changing fixing how text is Exposed It reaches the user so it's an actual fix at least a user on TTK3, but we could hope to have more but There are other things we could do and apart from These tests and fixing what Michael is doing like how things are pretty in screen readers What could be improved? I would have a real impact would be improving keyboard navigation through the interface I try and use and make real documents without ever touching the mouse some things are just not Or I don't know how to do that do them, but it's not possible for example it interacting with a frame is Really complex so for a screen reader user for a blind user even knowing there is a frame is hard if not impossible So yeah, there are other non-specific Nothing, it's not specific to a screen reader or an impaired person, but it's just If you try to remove your mouse some things don't work and they need that to work Okay, so that's what's about it I Like to thanks everybody that so showed me and Michael requests my mayor's requests and like Changes we can call them here, sorry including Calon including Christian Stiffon that wrote stuff for me, and I ended up not using and of course Michael and Everybody else that Helped at any level. Thank you