summaryrefslogtreecommitdiff
path: root/Source/WebKit/win/AccessibleBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/win/AccessibleBase.cpp')
-rw-r--r--Source/WebKit/win/AccessibleBase.cpp41
1 files changed, 37 insertions, 4 deletions
diff --git a/Source/WebKit/win/AccessibleBase.cpp b/Source/WebKit/win/AccessibleBase.cpp
index e733141f2..bb31adbd5 100644
--- a/Source/WebKit/win/AccessibleBase.cpp
+++ b/Source/WebKit/win/AccessibleBase.cpp
@@ -362,18 +362,20 @@ HRESULT STDMETHODCALLTYPE AccessibleBase::get_accKeyboardShortcut(VARIANT vChild
static String accessKeyModifiers;
if (accessKeyModifiers.isNull()) {
+ StringBuilder accessKeyModifiersBuilder;
unsigned modifiers = EventHandler::accessKeyModifiers();
// Follow the same order as Mozilla MSAA implementation:
// Ctrl+Alt+Shift+Meta+key. MSDN states that keyboard shortcut strings
// should not be localized and defines the separator as "+".
if (modifiers & PlatformEvent::CtrlKey)
- accessKeyModifiers += "Ctrl+";
+ accessKeyModifiersBuilder.appendLiteral("Ctrl+");
if (modifiers & PlatformEvent::AltKey)
- accessKeyModifiers += "Alt+";
+ accessKeyModifiersBuilder.appendLiteral("Alt+");
if (modifiers & PlatformEvent::ShiftKey)
- accessKeyModifiers += "Shift+";
+ accessKeyModifiersBuilder.appendLiteral("Shift+");
if (modifiers & PlatformEvent::MetaKey)
- accessKeyModifiers += "Win+";
+ accessKeyModifiersBuilder.appendLiteral("Win+");
+ accessKeyModifiers = accessKeyModifiersBuilder.toString();
}
*shortcut = BString(String(accessKeyModifiers + accessKey)).release();
return S_OK;
@@ -657,6 +659,7 @@ static long MSAARole(AccessibilityRole role)
case WebCore::LinkRole:
case WebCore::WebCoreLinkRole:
return ROLE_SYSTEM_LINK;
+ case WebCore::CanvasRole:
case WebCore::ImageMapRole:
case WebCore::ImageRole:
return ROLE_SYSTEM_GRAPHIC;
@@ -666,6 +669,36 @@ static long MSAARole(AccessibilityRole role)
return ROLE_SYSTEM_LISTITEM;
case WebCore::PopUpButtonRole:
return ROLE_SYSTEM_COMBOBOX;
+ case WebCore::DivRole:
+ case WebCore::FormRole:
+ case WebCore::LabelRole:
+ case WebCore::ParagraphRole:
+ return ROLE_SYSTEM_GROUPING;
+ case WebCore::HorizontalRuleRole:
+ return ROLE_SYSTEM_SEPARATOR;
+ case WebCore::ApplicationAlertRole:
+ return ROLE_SYSTEM_ALERT;
+ case WebCore::ComboBoxRole:
+ return ROLE_SYSTEM_COMBOBOX;
+ case WebCore::SpinButtonRole:
+ return ROLE_SYSTEM_SPINBUTTON;
+ case WebCore::SpinButtonPartRole:
+ return ROLE_SYSTEM_PUSHBUTTON;
+ case WebCore::ToggleButtonRole:
+ return ROLE_SYSTEM_PUSHBUTTON;
+ case WebCore::ToolbarRole:
+ return ROLE_SYSTEM_TOOLBAR;
+ case WebCore::UserInterfaceTooltipRole:
+ return ROLE_SYSTEM_TOOLTIP;
+ case WebCore::TreeRole:
+ case WebCore::TreeGridRole:
+ return ROLE_SYSTEM_OUTLINE;
+ case WebCore::TreeItemRole:
+ return ROLE_SYSTEM_OUTLINEITEM;
+ case WebCore::TabListRole:
+ return ROLE_SYSTEM_PAGETABLIST;
+ case WebCore::TabPanelRole:
+ return ROLE_SYSTEM_PROPERTYPAGE;
default:
// This is the default role for MSAA.
return ROLE_SYSTEM_CLIENT;