if (o.isChecked())
state |= (1 << ui::AX_STATE_CHECKED);
- if (o.isCollapsed())
- state |= (1 << ui::AX_STATE_COLLAPSED);
+ blink::WebAXExpanded expanded = o.isExpanded();
+ if (expanded) {
+ if (expanded == blink::WebAXExpandedCollapsed)
+ state |= (1 << ui::AX_STATE_COLLAPSED);
+ else if (expanded == blink::WebAXExpandedExpanded)
+ state |= (1 << ui::AX_STATE_EXPANDED);
+ }
if (o.canSetFocusAttribute())
state |= (1 << ui::AX_STATE_FOCUSABLE);
state |= (1 << ui::AX_STATE_FOCUSED);
if (o.role() == blink::WebAXRolePopUpButton ||
- o.ariaHasPopup()) {
+ o.ariaHasPopup())
state |= (1 << ui::AX_STATE_HASPOPUP);
- if (!o.isCollapsed())
- state |= (1 << ui::AX_STATE_EXPANDED);
- }
if (o.isHovered())
state |= (1 << ui::AX_STATE_HOVERED);
return ui::AX_ROLE_ARTICLE;
case blink::WebAXRoleBanner:
return ui::AX_ROLE_BANNER;
+ case blink::WebAXRoleBlockquote:
+ return ui::AX_ROLE_BLOCKQUOTE;
case blink::WebAXRoleBrowser:
return ui::AX_ROLE_BROWSER;
case blink::WebAXRoleBusyIndicator:
return ui::AX_ROLE_COMPLEMENTARY;
case blink::WebAXRoleContentInfo:
return ui::AX_ROLE_CONTENT_INFO;
+ case blink::WebAXRoleDate:
+ return ui::AX_ROLE_DATE;
+ case blink::WebAXRoleDateTime:
+ return ui::AX_ROLE_DATE_TIME;
case blink::WebAXRoleDefinition:
return ui::AX_ROLE_DEFINITION;
case blink::WebAXRoleDescriptionListDetail:
return ui::AX_ROLE_DESCRIPTION_LIST_DETAIL;
+ case blink::WebAXRoleDescriptionList:
+ return ui::AX_ROLE_DESCRIPTION_LIST;
case blink::WebAXRoleDescriptionListTerm:
return ui::AX_ROLE_DESCRIPTION_LIST_TERM;
+ case blink::WebAXRoleDetails:
+ return ui::AX_ROLE_DETAILS;
case blink::WebAXRoleDialog:
return ui::AX_ROLE_DIALOG;
case blink::WebAXRoleDirectory:
return ui::AX_ROLE_EDITABLE_TEXT;
case blink::WebAXRoleEmbeddedObject:
return ui::AX_ROLE_EMBEDDED_OBJECT;
+ case blink::WebAXRoleFigcaption:
+ return ui::AX_ROLE_FIGCAPTION;
+ case blink::WebAXRoleFigure:
+ return ui::AX_ROLE_FIGURE;
case blink::WebAXRoleFooter:
return ui::AX_ROLE_FOOTER;
case blink::WebAXRoleForm:
return ui::AX_ROLE_MARQUEE;
case blink::WebAXRoleMath:
return ui::AX_ROLE_MATH;
- case blink::WebAXRoleMathElement:
- return ui::AX_ROLE_MATH_ELEMENT;
case blink::WebAXRoleMatte:
return ui::AX_ROLE_MATTE;
case blink::WebAXRoleMenu:
return ui::AX_ROLE_MENU_BUTTON;
case blink::WebAXRoleMenuItem:
return ui::AX_ROLE_MENU_ITEM;
+ case blink::WebAXRoleMenuItemCheckBox:
+ return ui::AX_ROLE_MENU_ITEM_CHECK_BOX;
+ case blink::WebAXRoleMenuItemRadio:
+ return ui::AX_ROLE_MENU_ITEM_RADIO;
case blink::WebAXRoleMenuListOption:
return ui::AX_ROLE_MENU_LIST_OPTION;
case blink::WebAXRoleMenuListPopup:
return ui::AX_ROLE_MENU_LIST_POPUP;
+ case blink::WebAXRoleMeter:
+ return ui::AX_ROLE_METER;
case blink::WebAXRoleNavigation:
return ui::AX_ROLE_NAVIGATION;
+ case blink::WebAXRoleNone:
+ return ui::AX_ROLE_NONE;
case blink::WebAXRoleNote:
return ui::AX_ROLE_NOTE;
case blink::WebAXRoleOutline:
return ui::AX_ROLE_PARAGRAPH;
case blink::WebAXRolePopUpButton:
return ui::AX_ROLE_POP_UP_BUTTON;
+ case blink::WebAXRolePre:
+ return ui::AX_ROLE_PRE;
case blink::WebAXRolePresentational:
return ui::AX_ROLE_PRESENTATIONAL;
case blink::WebAXRoleProgressIndicator:
return ui::AX_ROLE_TEXT_AREA;
case blink::WebAXRoleTextField:
return ui::AX_ROLE_TEXT_FIELD;
+ case blink::WebAXRoleTime:
+ return ui::AX_ROLE_TIME;
case blink::WebAXRoleTimer:
return ui::AX_ROLE_TIMER;
case blink::WebAXRoleToggleButton:
default:
// We can't add an assertion here, that prevents us
// from adding new role enums in Blink.
- return static_cast<ui::AXRole>(-1);
+ LOG(WARNING) << "Warning: Blink WebAXRole " << role
+ << " not handled by Chromium yet.";
+ return ui::AX_ROLE_UNKNOWN;
}
}