diff options
author | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2015-07-14 16:52:09 +0200 |
---|---|---|
committer | Sérgio Martins <sergio.martins@kdab.com> | 2015-07-15 16:31:08 +0000 |
commit | c48d14501fff75741c5d218141005831cd8dc051 (patch) | |
tree | 968cefb48400070984c865f86313f1c40bdc4945 | |
parent | 4572541637f7ce1f93f3b4e0f4d0ab69b01f6ed2 (diff) | |
download | qtquickcontrols-c48d14501fff75741c5d218141005831cd8dc051.tar.gz |
Make MenuBar, Menu properly accessible
Previously, we had the accessibility settings in the desktop style
(only!). Now it's been moved into the actual control implementation.
Change-Id: Idb90d164dfd7a72c8188accd9e4fa3b02d567a94
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
-rw-r--r-- | src/controls/MenuBar.qml | 6 | ||||
-rw-r--r-- | src/controls/Private/MenuContentItem.qml | 16 | ||||
-rw-r--r-- | src/controls/Styles/Desktop/MenuBarStyle.qml | 5 | ||||
-rw-r--r-- | src/controls/Styles/Desktop/MenuStyle.qml | 5 |
4 files changed, 22 insertions, 10 deletions
diff --git a/src/controls/MenuBar.qml b/src/controls/MenuBar.qml index 3410528c..0d9f8ee8 100644 --- a/src/controls/MenuBar.qml +++ b/src/controls/MenuBar.qml @@ -116,6 +116,7 @@ MenuBarPrivate { property Component __menuBarComponent: Loader { id: menuBarLoader + Accessible.role: Accessible.MenuBar onStatusChanged: if (status === Loader.Error) console.error("Failed to load panel for", root) @@ -230,7 +231,12 @@ MenuBarPrivate { Loader { id: menuItemLoader + Accessible.role: Accessible.MenuItem + Accessible.name: StyleHelpers.removeMnemonics(opts.text) + Accessible.onPressAction: d.openedMenuIndex = opts.index + property var styleData: QtObject { + id: opts readonly property int index: __menuItemIndex readonly property string text: !!__menuItem && __menuItem.title readonly property bool enabled: !!__menuItem && __menuItem.enabled diff --git a/src/controls/Private/MenuContentItem.qml b/src/controls/Private/MenuContentItem.qml index 6006f8d8..07edea2f 100644 --- a/src/controls/Private/MenuContentItem.qml +++ b/src/controls/Private/MenuContentItem.qml @@ -37,12 +37,15 @@ import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.1 +import QtQuick.Controls.Private 1.0 Loader { id: menuFrameLoader property var __menu + Accessible.role: Accessible.PopupMenu + visible: status === Loader.Ready width: content.width + (d.style ? d.style.padding.left + d.style.padding.right : 0) height: content.height + (d.style ? d.style.padding.top + d.style.padding.bottom : 0) @@ -172,6 +175,19 @@ Loader { Loader { id: menuItemLoader + Accessible.role: opts.type === MenuItemType.Item || opts.type === MenuItemType.Menu ? + Accessible.MenuItem : Acccessible.NoRole + Accessible.name: StyleHelpers.removeMnemonics(opts.text) + Accessible.checkable: opts.checkable + Accessible.checked: opts.checked + Accessible.onPressAction: { + if (opts.type === MenuItemType.Item) { + d.triggerAndDismiss(menuItemLoader) + } else if (opts.type === MenuItemType.Menu) { + __showSubMenu(true /*immediately*/) + } + } + property QtObject styleData: QtObject { id: opts readonly property int index: __menuItemIndex diff --git a/src/controls/Styles/Desktop/MenuBarStyle.qml b/src/controls/Styles/Desktop/MenuBarStyle.qml index 470ccdb6..a31b2bb7 100644 --- a/src/controls/Styles/Desktop/MenuBarStyle.qml +++ b/src/controls/Styles/Desktop/MenuBarStyle.qml @@ -45,8 +45,6 @@ Style { property Component background: StyleItem { elementType: "menubar" - Accessible.role: Accessible.MenuBar - Component.onCompleted: { styleRoot.padding.left = pixelMetric("menubarhmargin") + pixelMetric("menubarpanelwidth") styleRoot.padding.right = pixelMetric("menubarhmargin") + pixelMetric("menubarpanelwidth") @@ -69,9 +67,6 @@ Style { selected: (parent && styleData.selected) || sunken hints: { "showUnderlined": styleData.underlineMnemonic } - - Accessible.role: Accessible.MenuItem - Accessible.name: plainText } property Component menuStyle: Desktop.MenuStyle { } diff --git a/src/controls/Styles/Desktop/MenuStyle.qml b/src/controls/Styles/Desktop/MenuStyle.qml index 244bbca4..60e73d2f 100644 --- a/src/controls/Styles/Desktop/MenuStyle.qml +++ b/src/controls/Styles/Desktop/MenuStyle.qml @@ -60,8 +60,6 @@ Style { color: SystemPaletteSingleton.window(control.enabled) } - Accessible.role: Accessible.PopupMenu - Component.onCompleted: { var menuHMargin = pixelMetric("menuhmargin") var menuVMargin = pixelMetric("menuvmargin") @@ -106,9 +104,6 @@ Style { "scrollerDirection": styleData.scrollerDirection, "icon": !!__menuItem && __menuItem.__icon } - - Accessible.role: Accessible.MenuItem - Accessible.name: StyleHelpers.removeMnemonics(text) } property Component scrollIndicator: menuItemPanel |