qtdeclarative/src/quicktemplates
Volker Hilsheimer 3c08d08ae2 Accessibility: respect value in attached Accessible in controls
QQuickItemPrivate::accessibleRole is virtual and called by the framework
to determine the role of an item. The default implementation checks and
respects a possible Accessible attached object. However, subclasses that
override the virtual don't, so the attached properties are ignored, and
the class-specific implementation wins. This makes it impossible to
change the role of e.g. a checkable button.

To fix that, move the code respecting the attached object into a non-
virtual function that the framework calls instead, and only call the
virtual member if there is no attached object, or if that object is not
initialized with a role. Replace calls to the virtual from the
framework with calls to the non-virtual wrapper.

Do this for both QQuickItem and for QQuickPopup, and adjust the logic
in QQuickControl types that create an attached object and initialize
it's role when accessibility becomes active. Use the non-overridable
effective role value for that as well.

Add a test case, and to avoid any new framework calls to the virtual,
make it private.

Fixes: QTBUG-110114
Pick-to: 6.5 6.2
Change-Id: Ia709cecbd181b6d8ee3297a4af60c1e7db9a2c51
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2023-04-21 16:42:56 +02:00
..
accessible
doc/src
CMakeLists.txt Fix build with -no-feature-quick-viewtransitions 2023-03-07 18:24:50 +09:00
configure.cmake
qquickabstractbutton.cpp Add a how-to page for Qt Quick topics 2023-03-24 15:44:21 +08:00
qquickabstractbutton_p.h
qquickabstractbutton_p_p.h MenuBarItem: open menu on mouse press, touch release 2023-02-13 14:18:41 +08:00
qquickaction.cpp
qquickaction_p.h
qquickaction_p_p.h
qquickactiongroup.cpp
qquickactiongroup_p.h
qquickapplicationwindow.cpp Provide window palette for quickcontrol application window 2023-03-02 20:31:13 +01:00
qquickapplicationwindow_p.h
qquickbusyindicator.cpp
qquickbusyindicator_p.h
qquickbutton.cpp
qquickbutton_p.h
qquickbutton_p_p.h
qquickbuttongroup.cpp Reset button group from attached property 2023-03-08 00:58:48 +00:00
qquickbuttongroup_p.h
qquickcalendar.cpp
qquickcalendar_p.h
qquickcalendarmodel.cpp Fix counting of number of months from one date to another 2023-03-10 11:17:17 +01:00
qquickcalendarmodel_p.h
qquickcheckbox.cpp
qquickcheckbox_p.h
qquickcheckdelegate.cpp
qquickcheckdelegate_p.h
qquickcombobox.cpp ComboBox: don't open on key release unless press was handled 2023-04-18 13:11:16 +02:00
qquickcombobox_p.h Fix build with -no-feature-validator 2023-01-17 15:22:17 +09:00
qquickcontainer.cpp
qquickcontainer_p.h
qquickcontainer_p_p.h
qquickcontentitem.cpp
qquickcontentitem_p.h
qquickcontrol.cpp Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquickcontrol_p.h
qquickcontrol_p_p.h Fix visibility of scroll bars in ScrollView 2023-04-17 11:42:57 +08:00
qquickdayofweekmodel.cpp
qquickdayofweekmodel_p.h
qquickdayofweekrow.cpp
qquickdayofweekrow_p.h
qquickdeferredexecute.cpp Deferred properties: avoid spurious binding loop 2023-01-06 08:31:20 +01:00
qquickdeferredexecute_p_p.h
qquickdeferredpointer_p_p.h
qquickdelaybutton.cpp Controls: Don't say DelayButton::progress is read-only in documentation 2023-01-26 10:42:33 +00:00
qquickdelaybutton_p.h
qquickdial.cpp QtQuickTemplates: Disambiguate static string constants 2023-02-10 08:38:27 +01:00
qquickdial_p.h
qquickdialog.cpp Warn users when they customize native styles 2022-12-05 15:00:35 +08:00
qquickdialog_p.h
qquickdialog_p_p.h
qquickdialogbuttonbox.cpp Drop useless extra QQmlContext from QQuickDialogButtonBoxPrivate 2023-02-16 13:44:56 +01:00
qquickdialogbuttonbox_p.h Controls: Use PlatformDialogHelper for enums in DialogButtonBox 2023-02-15 14:04:44 +01:00
qquickdialogbuttonbox_p_p.h
qquickdrawer.cpp Remove side-panel and swipe-to-remove quickcontrol examples 2023-03-03 07:37:00 +00:00
qquickdrawer_p.h
qquickdrawer_p_p.h
qquickframe.cpp
qquickframe_p.h
qquickframe_p_p.h
qquickgroupbox.cpp Warn users when they customize native styles 2022-12-05 15:00:35 +08:00
qquickgroupbox_p.h
qquickheaderview.cpp doc: Fix some warnings (broken links) 2023-03-28 11:43:31 +02:00
qquickheaderview_p.h
qquickheaderview_p_p.h Fix build with -no-feature-transposeproxymodel 2023-01-17 08:03:57 +09:00
qquickicon.cpp
qquickicon_p.h
qquickindicatorbutton_p.cpp QtQuickTemplates: Disambiguate static string constants 2023-02-10 08:38:27 +01:00
qquickindicatorbutton_p.h
qquickitemdelegate.cpp
qquickitemdelegate_p.h
qquickitemdelegate_p_p.h
qquicklabel.cpp Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquicklabel_p.h
qquicklabel_p_p.h
qquickmenu.cpp Fix build with -no-feature-listview and itemviews 2023-04-13 12:07:51 +09:00
qquickmenu_p.h
qquickmenu_p_p.h
qquickmenubar.cpp Fix build with -no-feature-shortcut 2023-01-17 08:03:57 +09:00
qquickmenubar_p.h
qquickmenubar_p_p.h
qquickmenubaritem.cpp MenuBarItem: open menu on mouse press, touch release 2023-02-13 14:18:41 +08:00
qquickmenubaritem_p.h MenuBarItem: open menu on mouse press, touch release 2023-02-13 14:18:41 +08:00
qquickmenubaritem_p_p.h MenuBarItem: open menu on mouse press, touch release 2023-02-13 14:18:41 +08:00
qquickmenuitem.cpp
qquickmenuitem_p.h
qquickmenuitem_p_p.h
qquickmenuseparator.cpp
qquickmenuseparator_p.h
qquickmonthgrid.cpp
qquickmonthgrid_p.h
qquickmonthmodel.cpp
qquickmonthmodel_p.h
qquickoverlay.cpp Fix build with -no-feature-wheelevent 2023-01-17 15:22:20 +09:00
qquickoverlay_p.h
qquickoverlay_p_p.h QQuickOverlay: fix crash when a Drawer is destroyed 2022-12-12 15:27:47 +01:00
qquickpage.cpp
qquickpage_p.h
qquickpage_p_p.h
qquickpageindicator.cpp
qquickpageindicator_p.h
qquickpane.cpp
qquickpane_p.h
qquickpane_p_p.h
qquickpopup.cpp Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquickpopup_p.h Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquickpopup_p_p.h Make the Controls Fusion theme use the platform palette by default 2023-01-11 20:13:18 +01:00
qquickpopupanchors.cpp
qquickpopupanchors_p.h
qquickpopupanchors_p_p.h
qquickpopupitem.cpp Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquickpopupitem_p_p.h
qquickpopuppositioner.cpp qquickpopuppositioner: fix popup mirroring 2022-12-20 16:10:55 +01:00
qquickpopuppositioner_p_p.h
qquickpresshandler.cpp QQuickPressHandler: Fix delayedMousePressEvent leak 2023-02-17 08:02:12 +01:00
qquickpresshandler_p_p.h quicktemplates: include missing headers 2023-04-14 19:20:42 +08:00
qquickprogressbar.cpp
qquickprogressbar_p.h
qquickradiobutton.cpp
qquickradiobutton_p.h
qquickradiodelegate.cpp
qquickradiodelegate_p.h
qquickrangeslider.cpp QtQuickTemplates: Disambiguate static string constants 2023-02-10 08:38:27 +01:00
qquickrangeslider_p.h
qquickroundbutton.cpp
qquickroundbutton_p.h
qquickscrollbar.cpp Fix visibility of scroll bars in ScrollView 2023-04-17 11:42:57 +08:00
qquickscrollbar_p.h
qquickscrollbar_p_p.h
qquickscrollindicator.cpp QtQuickTemplates: Disambiguate static variables 2023-02-07 19:23:12 +01:00
qquickscrollindicator_p.h
qquickscrollview.cpp ScrollView: replace "content" bool with enum 2023-04-17 11:43:06 +08:00
qquickscrollview_p.h
qquickselectionrectangle.cpp doc: Fix some warnings (broken links) 2023-03-28 11:43:31 +02:00
qquickselectionrectangle_p.h
qquickselectionrectangle_p_p.h
qquickshortcutcontext.cpp
qquickshortcutcontext_p_p.h
qquickslider.cpp QtQuickTemplates: Disambiguate static string constants 2023-02-10 08:38:27 +01:00
qquickslider_p.h
qquickspinbox.cpp Fix build with -no-feature-qml-locale 2023-02-14 12:58:30 +09:00
qquickspinbox_p.h Fix build with -no-feature-validator 2023-01-17 15:22:17 +09:00
qquicksplitview.cpp Fix build with -no-feature-cborstreamwriter 2023-01-17 15:22:21 +09:00
qquicksplitview_p.h
qquicksplitview_p_p.h
qquickstackelement.cpp Fix build with -no-feature-quick-viewtransitions 2023-03-07 18:24:50 +09:00
qquickstackelement_p_p.h Fix build with -no-feature-quick-viewtransitions 2023-03-07 18:24:50 +09:00
qquickstacktransition.cpp
qquickstacktransition_p_p.h Fix build with -no-feature-quick-viewtransitions 2023-03-07 18:24:50 +09:00
qquickstackview.cpp StackView: emit depthChanged when clearing with transition 2023-04-18 16:28:07 +02:00
qquickstackview_p.cpp Fix build with -no-feature-quick-viewtransitions 2023-03-07 18:24:50 +09:00
qquickstackview_p.h QQuickStackView: Fully-qualify enum type in invokable function signature 2023-04-04 22:09:29 +08:00
qquickstackview_p_p.h Fix build with -no-feature-quick-viewtransitions 2023-03-07 18:24:50 +09:00
qquickswipe_p.h
qquickswipedelegate.cpp Remove side-panel and swipe-to-remove quickcontrol examples 2023-03-03 07:37:00 +00:00
qquickswipedelegate_p.h
qquickswipedelegate_p_p.h
qquickswipeview.cpp Doc: explain how to manage currentIndex without breaking bindings 2023-01-25 01:47:46 +00:00
qquickswipeview_p.h
qquickswitch.cpp
qquickswitch_p.h
qquickswitchdelegate.cpp
qquickswitchdelegate_p.h
qquicktabbar.cpp Doc: explain how to manage currentIndex without breaking bindings 2023-01-25 01:47:46 +00:00
qquicktabbar_p.h
qquicktabbutton.cpp
qquicktabbutton_p.h
qquicktextarea.cpp Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquicktextarea_p.h
qquicktextarea_p_p.h
qquicktextfield.cpp Accessibility: respect value in attached Accessible in controls 2023-04-21 16:42:56 +02:00
qquicktextfield_p.h
qquicktextfield_p_p.h
qquicktheme.cpp Make the Controls Fusion theme use the platform palette by default 2023-01-11 20:13:18 +01:00
qquicktheme_p.h Make the Controls Fusion theme use the platform palette by default 2023-01-11 20:13:18 +01:00
qquicktheme_p_p.h
qquicktoolbar.cpp
qquicktoolbar_p.h
qquicktoolbutton.cpp
qquicktoolbutton_p.h
qquicktoolseparator.cpp
qquicktoolseparator_p.h
qquicktooltip.cpp
qquicktooltip_p.h
qquicktreeviewdelegate.cpp doc: Fix some warnings (broken links) 2023-03-28 11:43:31 +02:00
qquicktreeviewdelegate_p.h QQuickTreeViewDelegate: implement edit delegates 2022-12-08 23:33:42 +01:00
qquicktumbler.cpp
qquicktumbler_p.h
qquicktumbler_p_p.h
qquickvelocitycalculator.cpp
qquickvelocitycalculator_p_p.h
qquickweeknumbercolumn.cpp
qquickweeknumbercolumn_p.h
qquickweeknumbermodel.cpp
qquickweeknumbermodel_p.h
qt_cmdline.cmake
qtquicktemplates2global.cpp
qtquicktemplates2global_p.h QtQuickTemplates: Disambiguate static string constants 2023-02-10 08:38:27 +01:00
qtquicktemplates2plugin.cpp Templates: Drop some dead code 2023-01-24 14:25:16 +01:00