Treat the accessible non-editable combobox as ButtonMenu on macOS
Following the system design, we should treat the non-editable combobox as a ButtonMenu. All of the similar elements in macOS's UI are called ButtonMenu with the screen reader. This fixes the case when ctrl+option+space does not invoke the popup menu with options. Fixes: QTBUG-106162 Change-Id: I0b439c56d72d1fe5b32a60eb7c001f863c00adc1 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>bb10
parent
c672f148db
commit
b53dcb4e67
|
|
@ -155,6 +155,8 @@ NSString *macRole(QAccessibleInterface *interface)
|
|||
|
||||
if (roleMap.contains(qtRole)) {
|
||||
// MAC_ACCESSIBILTY_DEBUG() << "return" << roleMap[qtRole];
|
||||
if (roleMap[qtRole] == NSAccessibilityComboBoxRole && !interface->state().editable)
|
||||
return NSAccessibilityMenuButtonRole;
|
||||
if (roleMap[qtRole] == NSAccessibilityTextFieldRole && interface->state().multiLine)
|
||||
return NSAccessibilityTextAreaRole;
|
||||
return roleMap[qtRole];
|
||||
|
|
|
|||
|
|
@ -366,6 +366,7 @@ QAccessible::State QAccessibleComboBox::state() const
|
|||
|
||||
s.expandable = true;
|
||||
s.expanded = isValid() && comboBox()->view()->isVisible();
|
||||
s.editable = comboBox()->isEditable();
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue