You need a screen reader for hearing this buggy behavior. Switch the screen reader on. Open a new Writer document. Start Tools → AutoText. Now switch through the whole dialog by typing Tab or by moving an d marking something with the mouse. No information about any field and button is there for the screen reader. It only says "Tab", "Tab", "Tab" ... The dialog is completely unusable for people, who can't work without screen reader. Tested here with OpenSUSE 15.1 64bit rpm Linux, Orca screen reader and LO 6.4.4.2.
This seems to be a special problem of Version: 6.4.4.2 Build-ID: 3d775be2011f3886db32dfd395a6a6d1ca2630ff CPU-Threads: 6; BS: Linux 4.12; UI-Render: Standard; VCL: kf5; Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE Calc: threaded If I change VCL: kf5; to VCL: gtk3; The screen reader works without any problem here. With VCL: gtk2; the screen reader says nothing in LO ...
Confirmed, see also bug 122053 for some more information.
Dear Robert Großkopf, To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year. There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present. If you have time, please do the following: Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/ If the bug is present, please leave a comment that includes the information from Help - About LibreOffice. If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice. Please DO NOT Update the version field Reply via email (please reply directly on the bug tracker) Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not appropriate in this case) If you want to do more to help you can test to see if your issue is a REGRESSION. To do so: 1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from https://downloadarchive.documentfoundation.org/libreoffice/old/ 2. Test your bug 3. Leave a comment with your results. 4a. If the bug was present with 3.3 - set version to 'inherited from OOo'; 4b. If the bug was not present in 3.3 - add 'regression' to keyword Feel free to come ask questions or to say hello in our QA chat: https://web.libera.chat/?settings=#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug
Same buggy behavior with LO 7.4.0.2 and VCL: kf5 on OpenSUSE 15.3 64bit rpm Linux.
qt5/qt6/kf5 are still not usable with a screen reader as of now, but some work on a11y of the Qt-based VCL plugins has been done (and is going on), s. e.g. the commits below. (I also have a WIP branch where Orca *sometimes" speaks with the qt6 VCL plugin.) Making this work properly also requires changes to the Qt library and Orca. Since the corresponding Qt changes will only be in Qt 6, not Qt 5, I'm moving this from the kf5 to the qt6 meta bug. Related Orca commits: 75c433b3d Don't use text offset of 1 for empty text d348621b9 Consider alerts as dialogs in 'frameAndDialog' Related qtbase commits: 5145d3899d a11y atspi: Support AT-SPI table cell interface f350956548 a11y atspi: Forward change of focused state e97b9ddcb0 a11y atspi: Drop unused forward-declaration QSpiAccessibleInterface ee35afc117 a11y atspi: Drop 'if (0)' branch 7594e8ca4d a11y atspi: Send D-Bus reply for "GetCaption" in expected format a32a3aa388 a11y atspi: Add support for ATSPI_COORD_TYPE_PARENT fa0e24b641 a11y atspi: translate coords for GetOffsetAtPoint the right way 49c966bc85 a11y atspi: Take dialog into account as top-level window d40dacf5f4 a11y atspi: Fix incorrect use of x instead of y position Some LO Commits: 04af1b4e1ce5 qt a11y: Drop duplicate nullptr check f2371a7d9b30 qt a11y: Clear QtXAccessible's ref to XAccessible once passed on a65719ec6752 qt a11y: Clear XAccessible reference when disposing 48baddac8f17 qt a11y: Drop QtAccessibleEventListener's XAccessible reference a3f3453c00f7 qt a11y: Implement QtAccessibleWidget::indexOfChild f29e3dbe0155 qt a11y: Replace dynamic_cast with static_cast 2de74491a5a7 qt a11y: Use correct coord system in QtAccessibleWidget::childAt 38289a8abed7 qt a11y: Implement QtAccessibleWidget::text{After,Before}Offset 69ecff82d0e5 qt a11y: Check range for offset passed to text methods 892bd0dfc1b1 qt a11y: Return actual range of text with same attributes 3cf7b358799d qt a11y: Implement QtAccessibleWidget::offsetAtPoint 12f96c3d0f61 qt a11y: implement QtAccessibleWidget::{row,column}HeaderCells c03a262c477b qt a11y: Implement QtAccessibleWidget::selectedCell{s,Count} 7f5cab0cf4aa qt a11y: Map BUTTON_{DROPDOWN,MENU} to Qt equivalents ba31e1bfdbcb qt a11y: Map AccessibleRole::FILE_CHOOSER dcefd68f6df3 qt a11y: Drop extra empty lines in switch/case 0b15b7f589b1 qt a11y: Drop obsolete and misleading comment 99640693d28c qt a11y: Implement QtAccessibleWidget::window 2690b0079c16 qt a11y: Consider QObject hierarchy to find parent 35be93f83ac8 qt a11y: Implement QtAccessibleWidget::characterRect e4066a41406b qt a11y: Implement QtAccessibleWidget::table 3a9d36d49d1f qt a11y: Only return actually supported a11y interfaces 1a8132515bab tdf#149816 qt a11y: Report position in screen coordinates 85c564285036 qt a11y: Handle special value of -1 for text offset 8c3e8af0e608 qt a11y: Forward STATE_CHANGED event as such 9ee8b709594d qt a11y: Handle TABLE_MODEL_CHANGED event 6ec960fe0be9 qt a11y: Handle HYPERTEXT_CHANGED event ab925e1d8d92 qt a11y: Handle VALUE_CHANGED event fe9206b47446 qt a11y: Better handle TEXT_CHANGED event dc6eb44e625c qt a11y: Map CARET_CHANGED event to Qt equivalent 91798635258c qt5 a11y: Implement Qt5AccessibleWidget::is{Column,Row}Selected 6735a37747a3 qt5 a11y: Implement QAccessibleTableCellInterface 0ae1c36f319b qt5 a11y: Drop Qt5AccessibleWidget::{text,value}Interface f62cbfed5509 qt5 a11y: Implement Qt5AccessibleWidget::minimumStepSize 0f15f1ec7c7b qt5 a11y: Always query the XAccessibleContext for a11y interfaces b216a87d7a09 qt5 a11y: Improve Qt5AccessibleWidget::attributes bdf14fd8ea18 qt5 a11y: Implement Qt5AccessibleWidget::cursorPosition 96869931e35f qt5 a11y: Implement Qt5AccessibleWidget::textAtOffset add4f7732840 qt5 a11y: Handle AccessibleStateType::MULTI_LINE 7be0f62de07a qt5 a11y: Handle AccessibleStateType::MOVEABLE 6c8824490840 qt5 a11y: Skip attributes without value a440bea2f96f qt5 a11y: Adapt loop for string construction here a bit ddbc11155560 qt5 a11y: Set proper a11y states
(In reply to Michael Weghorn from comment #5) > qt5/qt6/kf5 are still not usable with a screen reader as of now, but some > work on a11y of the Qt-based VCL plugins has been done (and is going on), s. > e.g. the commits below. > (I also have a WIP branch where Orca *sometimes" speaks with the qt6 VCL > plugin.) > > Making this work properly also requires changes to the Qt library and Orca. > Since the corresponding Qt changes will only be in Qt 6, not Qt 5, I'm > moving this from the kf5 to the qt6 meta bug. While it's still not ready for production use, Orca already announces quite a lot when using the qt6 VCL plugin along with the current dev version of qtbase. (Orca e.g. ususally starts talking after double-clicking into a writer document, then moving around the toolbar,...) Some more related changes: LO (Qt-specific, but more do play a role): a182f283dabf qt a11y: Map AccessibleStateType::INDETERMINATE to Qt equivalent 66fa5aeec5db qt a11y: Set passwordEdit state for PASSWORD_TEXT d2daaedf2e3b qt a11y: Take current type into account when setting new value 15a6e23c4fc1 tdf#157696 qt a11y: Move handling for text attr offsets to helper be8b031d8b3c qt a11y: Forward CHILD event for removed child b73a8731c6f7 qt a11y: Return app as parent for top-level objects bc662b15bf56 qt a11y: Check child index in QtAccessibleWidget::child 4849c98eb44b qt a11y: Forward changes to active state 84183c84d864 qt a11y: Implement QAccessibleSelectionInterface added in Qt 6.5 734d10ed3612 qt a11y: Send QAccessible::ObjectCreated event for correct object 02266202e5e5 qt a11y: Handle all QAccessible::Relation flags 46a03cb52886 qt a11y: Add mapping for relations added in Qt 6.6 e55713dffbe8 qt a11y: Invert relation type to match Qt's semantic 155e8b1683f1 tdf#117173: qt a11y: Forward changes to SHOWING state 5226e3889155 tdf#150683 qt a11y: Add bound checks for table methods 1dbf4a111486 tdf#150683 qt a11y: Avoid using 32-bit child index here dce8fda483f3 qt a11y: Set the (un)selected child in selection add/remove event 8ce3d4f8b000 qt a11y: Forward text selection change event as such 9d2c9a592ad6 qt a11y: Work around Qt ignoring ActiveDescendantChanged events 61c0c1286dbd qt a11y: Remember associated QObject also for non-QtXAcccessible case 812fe185fba4 qt a11y: Remember and reuse existing QObject for XAccessible b99c74804b25 qt a11y: Drop unnecessary QObject inheritance 2523b5451507 qt a11y: Don't set invalid Qt relations 31e40de94c2e qt a11y: Report underline text attribute 1188364a2832 qt a11y: Report (background) color text attribute 99841da68662 qt a11y: Report font style text attribute (e.g. italic) qtbase: 7120859fdb a11y: QComboBox: Reset all model connections when setting model d91d53c951 a11y atspi: Add null checks in table iface methods a149b3fd53 a11y: Only send focus event when item has focus 3d58715e6f a11y: Implement QAccessibleSelectionInterface for QAccessibleTabBar b0bcf47569 a11y atspi: Ignore malformed text attr instead of crashing f67499baab a11y uia: Report UIA_StrikethroughStyleAttributeId d2bf45c6ed a11y: Report strikethrough via text attribute bb6ed27b50 a11y uia: Map 3 more roles to UIA control type IDs 56476947cf a11y atspi: Bridge IA2 strikeout text attrs to AT-SPI f035766b16 a11y atspi: Unescape commas in color text attribute 5db48d584e Don't reuse iterator var to avoid -D_GLIBCXX_DEBUG crash 1b0e76f514 a11y atspi: Don't restrict top-level window to 2 a11y roles 0699ef1301 a11y atspi: Update text-attribute links 5093e517b9 a11y: Keep current combobox entry in sync 2496882ea7 a11y: No longer mark QAccessibleSelectionInterface as preliminary 9900a12df6 a11y uia: Don't return "S_OK" and null text range beb1a48ef7 a11y atspi: Map ButtonMenu role to AT-SPI equivalent 4f9c66131d a11y uia: Bridge QAccessibleSelectionInterface 3bace699bf a11y uia: Support ISelectionProvider2 b8fb120384 a11y uia: Bridge newly added relations to UIA 6ec35ff8c5 a11y: Report app as parent for top-level item views 98e4e992fe a11y macOS: Report selection/Bridge QAccessibleSelectionInterface 86ea40b478 a11y atspi: Implement TableCell methods Get{Column,Row}HeaderCells c7b925757f a11y atspi: Report correct char code point when it's > 65535 f5358e5932 a11y: Add new relations DescriptionFor, Described, Flows{From,To} 092bbc9ad3 a11y: Implement QAccessibleSelectionInterface for item views ece2feee03 a11y atspi: Bridge newly introduced QAccessibleSelectionInterface 9d16d5e224 a11y: Add new QAccessibleSelectionInterface f408944598 a11y atspi: Clean up logging a bit 53086094d8 a11y: Fix QAccessibleTableInterface::selectedRows doc ad69ea47f5 a11y: Fix typo in QAccessible::ObjectHide doc ce16eb2679 a11y atspi: Forward table model change to AT-SPI dad2797aee a11y atspi: Move comment to better place 5462485a59 a11y atspi: Add null check in GetRowHeader handling 8b947bae72 a11y: Don't reassign unique ID to other object right away 0c0eadc484 a11y: Prevent one case of losing a11y interface when setting event child 063344c8b9 a11y atspi: Send SelectionChanged AT-SPI event on selection change 2910a6b308 a11y atspi: Forward SelectionWithin change to AT-SPI e81e7c3d99 a11y atspi: Drop FIXME that doesn't need action e5dca1ebe3 a11y atspi: Drop methods that are only declared 9ab11c726e a11y atspi: Support text interface's GetStringAtOffset 45121669f5 a11y atspi: Handle AT-SPI Text's ScrollSubstringTo 0131dbd2f9 a11y atspi: Drop commented out "say hello to d-bus" code e6599bfa61 a11y atspi: Send correct D-Bus reply for GetAttributeValue c2289ca582 a11y atspi: Add missing closing tag in introspection XML
Some more related LO commits: 9aaa528379a8 qt a11y: Forward ROLE_CHANGED event (Qt >= 6.11) 1db70ac081d7 qt a11y: Report locale for Qt >= 6.10 32c7035824e5 tdf#130857 qt weld a11y: Add custom a11y to registry 14a221bf5687 qt: No longer manually destroy QWindow 65a5a4772af9 tdf#163335 sw a11y: Handle cursor selection consistently 3eaa35e8bacc tdf#163335 qt a11y: Work around broken sw selection handling c67c9b04af15 qt a11y: Map BLOCK_QUOTE role to new Qt equivalent 5599ec55f0a2 tdf#130857 qt a11y weld: Handle "accepts-tab" text view property 95e2bdf97d98 tdf#130857 qt a11y weld: Convert accelerator for labels 9df896fe542f tdf#130857 qt a11y weld: Set "buddy" (mnemonic widget) 8e21f46f9524 tdf#130857 qt a11y weld: Apply ATK/a11y properties dd58b893f073 tdf#160837 qt a11y: Don't report window role for non-top-level b021286327ab tdf#130857 qt a11y weld: Set GtkBuilder ID as widget's accessible ID 2284e26a0731 qt a11y: Destroy QWindow when popup gets hidden fcaa903461ec qt a11y: Defer QWindow creation until frame gets shown 84929c43df52 tdf#155447 qt a11y: Map TEXT_FRAME role to QAccessible::Pane c64b823b74cb tdf#155447 qt a11y: Report accessible ID 5b9dec4caa72 tdf#155447 qt a11y: Don't report "Unknown" for unsupported props f281b70282bc tdf#160462 qt a11y: Open menu bar on F10 3776874c20b4 tdf#160971 qt a11y: Don't select combobox text on entry selection 575ab78504c5 qt a11y: Don't leak QAccessibleEvent ad4f75bdb49c qt a11y: Use "r" prefix for reference 1b6963cda0a2 tdf#158030 qt a11y: Implement new QAccessibleAttributesInterface 6e20e58270c8 tdf#159333 qt a11y: Process shortcuts only once Some more related qtbase commits: b126ada3056 QDockWidget a11y: Notify of role change when (un)docking 1fe2adea79e a11y: Introduce RoleChanged event, bridge to AT-SPI, UIA a99a99ea7a0 a11y uia: Move OSK logic to roleToControlTypeId 62f101c7dee QDockWidget a11y: Only report as toplevel window if floating 12cd5ef9e8a QToolButton a11y: Take menu from default action into account 509ccccbc9e QToolButton a11y: Use existing method to get QToolButton fb93950e7eb a11y: Move qt_accStripAmp helper to private QtGui header 9756f62a63f QLineEdit a11y: Report displayText on a11y layer 99ad6a51a59 a11y atspi: Warn on unimplemented Application iface method 77f02471ed2 a11y atspi: Create local variable on stack 5e7891f73fb a11y atspi: Set correct child index in children-changed:add event 6cca30bb11c a11y atspi: Support Application iface "AtspiVersion" property 854d7021b80 a11y uia: Report locale via UIA_CulturePropertyId bb2121551c3 a11y: Report QWidget locale da3422ca150 a11y: Introduce QAccessible::Attribute::Locale, bridge to AT-SPI 3224b2fb140 wasm a11y: Fix typo in comments 1df6a48a894 a11y macOS: Support titleUIElement property befce757faa a11y atspi: Report app parent 8bb9a1f2473 a11y uia: Support UIA_LabeledByPropertyId 363f069b0bb a11y atspi: Don't redefine libatspi constants fdf87fdce1c a11y atspi: Send AT-SPI signals with correct signature 0b5874bc96f a11y: Add new BlockQuote role d13de6afbef a11y: Report QMessageBox accessible ID 3cfabf92b09 a11y: Remember QTreeView's a11y child interfaces 13b40750938 a11y: Use desktop file name as app's accessible ID b079e38927f a11y atspi: Update link to IAccessible2 text attribute spec ab927b0e787 a11y: Drop src/3rdparty/iaccessible2 94929a63c8e a11y tests: Make combobox focus tests more reliable de91f5da67a a11y tests: Make key event tests more reliable 1ebec1e8961 a11y tests: Wait until window is exposed, skip focus test on Wayland 7fbe80c8a69 a11y: Notify of implicit window title change ef72e969629 a11y: Report actual platform window name on Windows 5178606a98b a11y: Report the actual (platform) window name as a11y name (xcb) a19d66385fc a11y atspi: Map QAccessible::Border to AT-SPI2 panel role fb5e1433055 a11y: Don't notify about name/desc/id change if there was none b8b7c584027 a11y: Add property for QWidget's accessible ID bd0a6e83079 a11y uia: Bridge QAccessibleAttributesInterface to UIA 2d3f49d7978 a11y atspi: Bridge QAccessibleAttributesInterface to AT-SPI 25ab8ada101 a11y: Notify of name change when setting window title used as a11y name 353dd10a1c4 a11y atspi: Bridge help text to AT-SPI 7dd7ed141dc a11y macOS: Forward new QAccessibleAnnouncementEvent on macOS 0377ad2f831 a11y uia: Forward new QAccessibleAnnouncementEvent to UIA 24986ccb7b2 a11y atspi: Forward new QAccessibleAnnouncementEvent to AT-SPI c9e62c24440 a11y atspi: Include atspi.h instead of atspi-constants.h 010952a55ee a11y: Add new QAccessibleAnnouncementEvent fb5ffe86268 a11y: Add new QAccessibleAttributesInterface b2ec2e1137c a11y atspi: Map checkable and hasPopup states to AT-SPI
Created attachment 202028 [details] Screencast with current LO git master and qtbase git dev
attachment 202028 [details] shows the behavior of the AutoText dialog with Orca I see with the current development versions of both, LibreOffice and Qt on Debian testing when using the qt6 VCL plugin. Announcement of this dialog (and others) and its UI element by Orca works now, so I'm closing this bug as fixed. There are certainly still more specific accessibility aspects needing further improvement with the Qt-based VCL plugins and LibreOffice in general (e.g. sometimes it takes a while until Orca starts speaking after starting LO with qt6), but I'd consider at least the "doesn't work at all" problem that this bug report is about as fixed. As mentioned earlier, accessibility will only work properly for qt6/kf6, not qt5/kf5 because it required/requires changes in the Qt toolkit itself that are only contained in Qt 6, not Qt 5.