From pierre.lamot at yahoo.fr Fri Jul 11 17:25:14 2014 From: pierre.lamot at yahoo.fr (Pierre Lamot) Date: Fri, 11 Jul 2014 16:25:14 +0100 Subject: [Accessibility] disable accessibility for some elements in QML Message-ID: <1405092314.19304.YahooMailNeo@web28902.mail.ir2.yahoo.com> Hello everyone, I am currently working on a mobile application for visually impaired persons. I am developing my application with QML on android (I also on iOS, but I only test the accessibility on android since it hasn't landed for iOS in the main branch yet) I 'd like to know if there is a possibility to disable accessibility for certain elements, my issue is that I ends up with a lot of elements that are traversed as "pane" while navigating with talkBack. thanks Best regards   Pierre Lamot -------------- next part -------------- An HTML attachment was scrubbed... URL: From Frederik.Gladhorn at digia.com Mon Jul 14 11:09:42 2014 From: Frederik.Gladhorn at digia.com (Gladhorn Frederik) Date: Mon, 14 Jul 2014 09:09:42 +0000 Subject: [Accessibility] disable accessibility for some elements in QML In-Reply-To: <1405092314.19304.YahooMailNeo@web28902.mail.ir2.yahoo.com> References: <1405092314.19304.YahooMailNeo@web28902.mail.ir2.yahoo.com> Message-ID: <5C5CDBDE-C9DD-4F44-B9D5-AEA0B503C9B8@digia.com> Hi Pierre, On 11 Jul 2014, at 17:25, Pierre Lamot > wrote: Hello everyone, I am currently working on a mobile application for visually impaired persons. I am developing my application with QML on android (I also on iOS, but I only test the accessibility on android since it hasn't landed for iOS in the main branch yet) iOS accessibility support is in the dev branch - which is Qt 5.4. Feedback is much appreciated there, but of course it required building Qt. I still need to implement rotation (currently everything works after rotating the device but visually VoiceOver will show the focus rectangle as it it wasn’t rotated). But I bet there are rough edges that I’m not aware of. I 'd like to know if there is a possibility to disable accessibility for certain elements, my issue is that I ends up with a lot of elements that are traversed as "pane” while navigating with talkBack. This is strange, in general elements that don’t have Accessible.something set should not appear for TalkBack at all. Please try to come up with a small example that shows this behavior (it should be easy enough to just create a simple qml file) and file a bug at bugreports.qt-project.org with GUI: Accessibility as component. In addition to that Qt 5.4 introduces a new property: Accessible.ignored. When set to true an element will no longer exist for the purpose of accessibility. This may be useful when using for example Qt Quick Control’s Label element which by default is a text element but maybe should be part of a bigger UI element. Greetings, Frederik thanks Best regards Pierre Lamot _______________________________________________ Accessibility mailing list Accessibility at qt-project.org http://lists.qt-project.org/mailman/listinfo/accessibility -------------- next part -------------- An HTML attachment was scrubbed... URL: From pierre.lamot at yahoo.fr Tue Jul 15 14:46:52 2014 From: pierre.lamot at yahoo.fr (Pierre Lamot) Date: Tue, 15 Jul 2014 13:46:52 +0100 Subject: [Accessibility] disable accessibility for some elements in QML In-Reply-To: <5C5CDBDE-C9DD-4F44-B9D5-AEA0B503C9B8@digia.com> References: <1405092314.19304.YahooMailNeo@web28902.mail.ir2.yahoo.com> <5C5CDBDE-C9DD-4F44-B9D5-AEA0B503C9B8@digia.com> Message-ID: <1405428412.503.YahooMailNeo@web28901.mail.ir2.yahoo.com> >This is strange, in general elements that don’t have Accessible.something set should not appear for TalkBack at all. Please try to come up with a small example that shows this behavior (it should be easy enough to just create a simple qml file) and file a bug at bugreports.qt-project.org with GUI: Accessibility as component. I opened this bug [1], but it seems to be rather related to ministro than Accessibility itself: [1] https://bugreports.qt-project.org/browse/QTBUG-40238 > >iOS accessibility support is in the dev branch - which is Qt 5.4. Feedback is much appreciated there, but of course it required building Qt. I still need to implement rotation (currently everything works after rotating the device but visually VoiceOver will show the focus rectangle as it it wasn’t rotated). >But I bet there are rough edges that I’m not aware of. > I'm about to test it. I'll give feedbacks if I find any problems. Best regards Pierre Lamot From andrei.tuicu at gmail.com Fri Jul 18 00:36:28 2014 From: andrei.tuicu at gmail.com (Andrei Tuicu) Date: Fri, 18 Jul 2014 01:36:28 +0300 Subject: [Accessibility] [Acessibility] Some questions Message-ID: Hello everyone! My name is Andrei Tuicu and I'm a GSOC student working on accessibility support for MuseScore. http://musescore.org/ I hope this is the right place to ask this questions. :) I have some problems with the Qt Accessibility API, maybe some of you can help me with them. So first of all, my main problem is that I can't seem to be able to get any new feedback from the screen reader when calling the QAccessbile::updateAccessbility static method. For example, I have a Custom class that inherits QSlider and I'm updating the value of the slider. Shouldn't this code make the screen-reader tell the new value of the slider? this->setValue(value()+10); QAccessibleValueChangeEvent event(this, value()); QAccessible::updateAccessibility(&event); Am I doing something wrong here? Other questions: 1. Must a widget have focus when QAccessible::updateAccessibility method is called? 2. If the answer to the previous question is yes, how can I make the screen-reader see the informations for QObjets since they can't get focus? 3. Is there a way to send a string to the screen-reader and say something like "read this". From what I read through the documentation, it doesn't seem to be, but I think it would be a nice addition for sending messages to the user. :) Thank you! Best regards, Andrei Tuicu -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrei.tuicu at gmail.com Fri Jul 18 01:28:43 2014 From: andrei.tuicu at gmail.com (Andrei Tuicu) Date: Fri, 18 Jul 2014 02:28:43 +0300 Subject: [Accessibility] Make the screen-reader view the status bar Message-ID: Hello! In my previous email I asked some abstract questions that are meant to help me better understand the mechanics behind Qt Accessibility engine. Here I have a concrete problem. As I said I'm trying to add support for accessbility in MuseScore. The part that I'm working on now is providing a way to receive screen-reader feedback about the selected score element. A score looks something like this: http://musescore.com/user/256436/scores/238766 . Everything that you see there is a QObject. When discussing with my mentor, we agreed that the simplest way to give feedback to the user would be to put all the informations in the status bar and make the screen-reader tell them. The problem that I'm facing now is that I can't seem to be able to make the screen-reader view the status bar without giving focus to it and that is not really an option, since the score will not receive any commands in this case. Is there a workaround? The questions that I've asked in the previous email were specific things that I thought might be ways of going about it. Though, it seems that it might be a simpler way that I'm not aware of. I'm open for any other suggestions and any comments are welcomed. :) Thank you! Andrei Tuicu -------------- next part -------------- An HTML attachment was scrubbed... URL: From Frederik.Gladhorn at digia.com Mon Jul 21 23:26:55 2014 From: Frederik.Gladhorn at digia.com (Gladhorn Frederik) Date: Mon, 21 Jul 2014 21:26:55 +0000 Subject: [Accessibility] [Acessibility] Some questions In-Reply-To: References: Message-ID: <8A39E338-6138-46DE-893C-9FBDC2CE64F3@digia.com> Hello Andrei, On 18 Jul 2014, at 00:36, Andrei Tuicu > wrote: Hello everyone! My name is Andrei Tuicu and I'm a GSOC student working on accessibility support for MuseScore. http://musescore.org/ I hope this is the right place to ask this questions. :) That’s a great project, I’m happy to hear that more projects are taking accessibility serious :) Feel free to ask away and I’ll try to answer as much as I can. I have some problems with the Qt Accessibility API, maybe some of you can help me with them. So first of all, my main problem is that I can't seem to be able to get any new feedback from the screen reader when calling the QAccessbile::updateAccessbility static method. For example, I have a Custom class that inherits QSlider and I'm updating the value of the slider. Shouldn't this code make the screen-reader tell the new value of the slider? this->setValue(value()+10); QAccessibleValueChangeEvent event(this, value()); QAccessible::updateAccessibility(&event); Am I doing something wrong here? The code looks good to me. The problem is more that there are so many norms and ways of using the different accessibility APIs. Qt aims to work on all platforms, but there has been a lot more usage and testing of these APIs in the last one or two years, so you might just hit bugs. This really depends on the screen reader. Which platform/screen reader are you testing with and which Qt version? There were a few fixes in Qt 5.4 for Windows and on Linux some fixes went into Orca because of bugs exposed by Qt. If you can’t get it to work, file a bug on bugreports.qt-project.org. Other questions: 1. Must a widget have focus when QAccessible::updateAccessibility method is called? No, but again, the behavior is completely platform dependent, most screen readers try to not drown the user in useless messages, so often they won’t announce the value change. Doing the update is still important, for example Orca on Linux (or rather AT-SPI) caches a lot and then will read wrong values later on when the widget receives focus. 2. If the answer to the previous question is yes, how can I make the screen-reader see the informations for QObjets since they can't get focus? It doesn’t have to be the real focus, but you’d have to implement a custom QAccessibleInterface subclass (and register a factory function for it). That interface can return true for the focus state, but it should of course be consistent with the application’s state in some way. Sending updates for QObject subclasses is fine as long as they have a QAccessibleInterface representation. Let me know if you need more info or if the docs are not complete enough. 3. Is there a way to send a string to the screen-reader and say something like "read this". From what I read through the documentation, it doesn't seem to be, but I think it would be a nice addition for sending messages to the user. :) There isn’t, but I’ve had a few situations where I wanted this as well. It really depends on the platforms again, but I think it makes sense. Please file a bug so we can discuss the API there and won’t forget about this. I know that it’s available on several platforms (iOS recently added this kind of feature) but haven’t looked into it for real. You can also have a look at existing accessibility issues: https://bugreports.qt-project.org/secure/Dashboard.jspa?selectPageId=12514 Please use GUI: Accessibility so I see new issues that you file. Greetings, Frederik Thank you! Best regards, Andrei Tuicu _______________________________________________ Accessibility mailing list Accessibility at qt-project.org http://lists.qt-project.org/mailman/listinfo/accessibility -------------- next part -------------- An HTML attachment was scrubbed... URL: From andre at oire.org Tue Jul 22 00:04:54 2014 From: andre at oire.org (Andre Polykanine) Date: Tue, 22 Jul 2014 01:04:54 +0300 Subject: [Accessibility] QML accessibility Message-ID: <310217733.20140722010454@oire.org> Hello everyone, Is QML (and namely QML scene) supposed to be accessible under Windows? I'm new to QT, so I'm just trying. Here's my slightly modified basic example: import QtQuick 2.0 Rectangle { width: 200 height: 100 color: "yellow" Text { anchors.centerIn: parent text: "Hello world!" } focus: true Keys.onPressed: { if (event.Key == Qt.Key_Return) { color = "blue"; text = "Hello Ukraine!"; event.accepted = true; } } } And, when running QmlScene, I can't get neither to this text, nor to the color with my screen reader navigation and reading commands. I'm using Windows 7 Ultimate with JAWS 15 latest release. To precise, I'm blind myself but would like to develop with QT. Thanks! -- With best regards from Ukraine, Andre Skype: Francophile Twitter: http://twitter.com/m_elensule Facebook: http://facebook.com/menelion From andrei.tuicu at gmail.com Tue Jul 22 00:27:09 2014 From: andrei.tuicu at gmail.com (Andrei Tuicu) Date: Tue, 22 Jul 2014 01:27:09 +0300 Subject: [Accessibility] [Acessibility] Some questions In-Reply-To: <8A39E338-6138-46DE-893C-9FBDC2CE64F3@digia.com> References: <8A39E338-6138-46DE-893C-9FBDC2CE64F3@digia.com> Message-ID: Hello, Frederik! :) Thank you for your reply! First of all I want to answer regarding the platform and the screen-reader. I'm curently working on Windows 7 and using NVDA for testing, but MuseScore is a crossplatform project that work on Windows, Linux and Mac, so the end goal is to provide accessibility for every platform. For the moment I would be happy if I can make everything work on Windows with NVDA and Linux with Orca. > Hello everyone! > > My name is Andrei Tuicu and I'm a GSOC student working on accessibility > support for MuseScore. http://musescore.org/ > > I hope this is the right place to ask this questions. :) > > > That’s a great project, I’m happy to hear that more projects are taking > accessibility serious :) > Feel free to ask away and I’ll try to answer as much as I can. > > > I have some problems with the Qt Accessibility API, maybe some of you > can help me with them. > > So first of all, my main problem is that I can't seem to be able to get > any new feedback from the screen reader when calling the > QAccessbile::updateAccessbility static method. > > For example, I have a Custom class that inherits QSlider and I'm > updating the value of the slider. Shouldn't this code make the > screen-reader tell the new value of the slider? > > this->setValue(value()+10); > > QAccessibleValueChangeEvent event(this, value()); > > QAccessible::updateAccessibility(&event); > > Am I doing something wrong here? > > > The code looks good to me. The problem is more that there are so many > norms and ways of using the different accessibility APIs. Qt aims to work > on all platforms, but there has been a lot more usage and testing of these > APIs in the last one or two years, so you might just hit bugs. > This really depends on the screen reader. Which platform/screen reader are > you testing with and which Qt version? > There were a few fixes in Qt 5.4 for Windows and on Linux some fixes went > into Orca because of bugs exposed by Qt. > > If you can’t get it to work, file a bug on bugreports.qt-project.org. > I already sent a bug-report for this problem, you can find it here: https://bugreports.qt-project.org/browse/QTBUG-40313 I've also submited there my "crash dummy" project. Since MuseScore is a huge project, I've created this small one just for understanding Qt Accessibility API. https://bugreports.qt-project.org/secure/attachment/41860/untitled.zip > Other questions: > > 1. Must a widget have focus when QAccessible::updateAccessibility method is called? > > > No, but again, the behavior is completely platform dependent, most > screen readers try to not drown the user in useless messages, so often they > won’t announce the value change. Doing the update is still important, for > example Orca on Linux (or rather AT-SPI) caches a lot and then will read > wrong values later on when the widget receives focus. > So the widget doesn't need to have focus when I'm calling the the updateAccessibility method, but the screen-reader will see this update only when receiving focus? (sorry, I got a bit confused here. :) ) 2. If the answer to the previous question is yes, how can I make the screen-reader see the informations for QObjets since they can't get focus? > > > It doesn’t have to be the real focus, but you’d have to implement a > custom QAccessibleInterface subclass (and register a factory function for > it). That interface can return true for the focus state, but it should of > course be consistent with the application’s state in some way. > Sending updates for QObject subclasses is fine as long as they have a > QAccessibleInterface representation. > > Let me know if you need more info or if the docs are not complete enough. > I would really apreciate more info here. Any informations that you can tell me, or more docs that I can read would be very helpfull. For the part that I'm working now (as I said in another email) I'm only working with QObjects and there is where I have problems. In the small project that I've sent to you above, I've also implemented the QAccessibleInteface for a QObject and I included it in a tree ierarchy, but I don't receive any feedback for it. > 3. Is there a way to send a string to the screen-reader and say something like "read this". From what I read through the documentation, it doesn't seem to be, but I think it would be a nice addition for sending messages to the user. :) > > > There isn’t, but I’ve had a few situations where I wanted this as well. > It really depends on the platforms again, but I think it makes sense. > Please file a bug so we can discuss the API there and won’t forget about > this. I know that it’s available on several platforms (iOS recently added > this kind of feature) but haven’t looked into it for real. > The reason why I'm asking this is because this would be the simplest solution to my problem. I have a lot of QObjects in one QWidget and a custom made selection/highlighting system. What I need is to provide real time feedback for the user, that's why I put so much accent on the updateAccessibility method and how it works. When the user selects a score element (for example note) I need the screen-reader to tell him the informations that I'm providing in that moment (using the same example "Note, Pitch A#, etc") without involving any focus changes. I'm filling a bug report for this now, as you suggested. One more question: I've tried looking myself in the source code of Qt to see how are things done, but I've found more than one place for same things. Where should I look? In qt/qt or qt/qtbase? Thank you very much! Andrei Tuicu -------------- next part -------------- An HTML attachment was scrubbed... URL: From Frederik.Gladhorn at digia.com Tue Jul 22 13:17:34 2014 From: Frederik.Gladhorn at digia.com (Gladhorn Frederik) Date: Tue, 22 Jul 2014 11:17:34 +0000 Subject: [Accessibility] QML accessibility In-Reply-To: <310217733.20140722010454@oire.org> References: <310217733.20140722010454@oire.org> Message-ID: <08B1C148-C1AB-43D5-B2A2-B444EF5E83FF@digia.com> Hello Andre, On 22 Jul 2014, at 00:04, Andre Polykanine wrote: > Hello everyone, > Is QML (and namely QML scene) supposed to be accessible under Windows? > I'm new to QT, so I'm just trying. > Here's my slightly modified basic example: > > import QtQuick 2.0 > > Rectangle { > width: 200 > height: 100 > color: "yellow" > > Text { > anchors.centerIn: parent > text: "Hello world!" > } > > focus: true > Keys.onPressed: { > if (event.Key == Qt.Key_Return) { > color = "blue"; > text = "Hello Ukraine!"; > event.accepted = true; > } > } > } > > And, when running QmlScene, I can't get neither to this text, nor to > the color with my screen reader navigation and reading commands. > I'm using Windows 7 Ultimate with JAWS 15 latest release. > To precise, I'm blind myself but would like to develop with QT. > Thanks! the problem with QML and Qt Quick is the level of abstraction. The example you show below implements a “button” or similar, but it’s too low level for the accessibility framework to guess what you intend. There is accessibility support built in for Qt Quick Controls. And you can also easily make your example accessible by adding a few properties, the docs are here: http://qt-project.org/doc/qt-5-dev/qml-qtquick-accessible.html I think the link above should get you started, let me know if you need more help or things don’t work. Greetings, Frederik > > -- > With best regards from Ukraine, > Andre > Skype: Francophile > Twitter: http://twitter.com/m_elensule > Facebook: http://facebook.com/menelion > > _______________________________________________ > Accessibility mailing list > Accessibility at qt-project.org > http://lists.qt-project.org/mailman/listinfo/accessibility