Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion ui/accessible/ui_accessible_item.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,10 @@ QWindow *Item::window() const {

QAccessible::Role Item::role() const {
const auto parent = _parent.get();
return parent
const auto index = parent ? currentIndex() : -1;
return (index >= 0)
? parent->accessibilityChildRoleAt(index)
: parent
? parent->accessibilityChildRole()
: QAccessible::Role();
}
Expand Down
4 changes: 4 additions & 0 deletions ui/rp_widget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,10 @@ QAccessible::Role RpWidget::accessibilityChildRole() const {
return QAccessible::Role::NoRole;
}

QAccessible::Role RpWidget::accessibilityChildRoleAt(int index) const {
return accessibilityChildRole();
}

QString RpWidget::accessibilityChildName(int index) const {
return QString();
}
Expand Down
7 changes: 7 additions & 0 deletions ui/rp_widget.h
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,13 @@ class RpWidget : public RpWidgetBase<QWidget> {
[[nodiscard]] virtual QAccessible::State accessibilityChildState(int index) const;
void accessibilityChildStateChanged(int index, AccessibilityState changes);
[[nodiscard]] virtual QAccessible::Role accessibilityChildRole() const;

// The role of one child where it differs from the list-wide one above:
// a divider row between the items of a list is a Separator, not one
// more item. Defaults to accessibilityChildRole().
[[nodiscard]] virtual QAccessible::Role accessibilityChildRoleAt(
int index) const;

[[nodiscard]] virtual QRect accessibilityChildRect(int index) const;
[[nodiscard]] virtual int accessibilityChildColumnCount(int row) const;
[[nodiscard]] virtual QAccessible::Role accessibilityChildSubItemRole() const;
Expand Down