Changeset 284676 in webkit
- Timestamp:
- Oct 22, 2021, 3:05:08 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r284675 r284676 1 2021-10-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK][a11y] Localized role name doesn't work with ATSPI enabled 4 https://bugs.webkit.org/show_bug.cgi?id=232136 5 6 Reviewed by Adrian Perez de Castro. 7 8 I switched to use SortedArrayMap in AccessibilityAtspi::localizedRoleName() but I didn't realize the array was 9 not actually sorted. We just need to sort it for SortedArrayMap to work as expected. 10 11 * accessibility/atspi/AccessibilityAtspi.cpp: 12 1 13 2021-10-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 14 -
trunk/Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp
r284675 r284676 222 222 223 223 static constexpr std::pair<AccessibilityRole, RoleNameEntry> roleNames[] = { 224 { AccessibilityRole::Unknown, { "unknown", N_("unknown") } }, 224 { AccessibilityRole::Application, { "application", N_("application") } }, 225 { AccessibilityRole::ApplicationAlert, { "notification", N_("notification") } }, 226 { AccessibilityRole::ApplicationAlertDialog, { "alert", N_("alert") } }, 227 { AccessibilityRole::ApplicationDialog, { "dialog", N_("dialog") } }, 228 { AccessibilityRole::ApplicationGroup, { "grouping", N_("grouping") } }, 229 { AccessibilityRole::ApplicationLog, { "log", N_("log") } }, 230 { AccessibilityRole::ApplicationMarquee, { "marquee", N_("marquee") } }, 231 { AccessibilityRole::ApplicationStatus, { "statusbar", N_("statusbar") } }, 232 { AccessibilityRole::ApplicationTextGroup, { "section", N_("section") } }, 233 { AccessibilityRole::ApplicationTimer, { "timer", N_("timer") } }, 234 { AccessibilityRole::Audio, { "audio", N_("audio") } }, 235 { AccessibilityRole::Blockquote, { "block quote", N_("block quote") } }, 236 { AccessibilityRole::BusyIndicator, { "progress bar", N_("progress bar") } }, 225 237 { AccessibilityRole::Button, { "push button", N_("push button") } }, 226 { AccessibilityRole::RadioButton, { "radio button", N_("radio button") } }, 238 { AccessibilityRole::Canvas, { "canvas", N_("canvas") } }, 239 { AccessibilityRole::Caption, { "caption", N_("caption") } }, 240 { AccessibilityRole::Cell, { "table cell", N_("table cell") } }, 227 241 { AccessibilityRole::CheckBox, { "check box", N_("check box") } }, 228 { AccessibilityRole::Slider, { "slider", N_("slider") } }, 229 { AccessibilityRole::TabGroup, { "page tab list", N_("page tab list") } }, 230 { AccessibilityRole::TextField, { "entry", N_("entry") } }, 231 { AccessibilityRole::StaticText, { "text", N_("text") } }, 232 { AccessibilityRole::TextArea, { "entry", N_("entry") } }, 233 { AccessibilityRole::ScrollArea, { "scroll pane", N_("scroll pane") } }, 234 { AccessibilityRole::PopUpButton, { "combo box", N_("combo box") } }, 235 { AccessibilityRole::MenuButton, { "menu item", N_("menu item") } }, 236 { AccessibilityRole::Table, { "table", N_("table") } }, 237 { AccessibilityRole::Application, { "application", N_("application") } }, 242 { AccessibilityRole::ColorWell, { "push button", N_("push button") } }, 243 { AccessibilityRole::ColumnHeader, { "column header", N_("column header") } }, 244 { AccessibilityRole::ComboBox, { "combo box", N_("combo box") } }, 245 { AccessibilityRole::Definition, { "definition", N_("definition") } }, 246 { AccessibilityRole::Deletion, { "content deletion", N_("content deletion") } }, 247 { AccessibilityRole::DescriptionList, { "description list", N_("description list") } }, 248 { AccessibilityRole::DescriptionListTerm, { "description term", N_("description term") } }, 249 { AccessibilityRole::DescriptionListDetail, { "description value", N_("description value") } }, 250 { AccessibilityRole::Directory, { "directory pane", N_("directory pane") } }, 251 { AccessibilityRole::Div, { "section", N_("section") } }, 252 { AccessibilityRole::Document, { "document frame", N_("document frame") } }, 253 { AccessibilityRole::DocumentArticle, { "article", N_("article") } }, 254 { AccessibilityRole::DocumentMath, { "math", N_("math") } }, 255 { AccessibilityRole::DocumentNote, { "comment", N_("comment") } }, 256 { AccessibilityRole::Feed, { "panel", N_("panel") } }, 257 { AccessibilityRole::Figure, { "panel", N_("panel") } }, 258 { AccessibilityRole::Footer, { "footer", N_("footer") } }, 259 { AccessibilityRole::Footnote, { "footnote", N_("footnote") } }, 260 { AccessibilityRole::Form, { "form", N_("form") } }, 261 { AccessibilityRole::GraphicsDocument, { "document frame", N_("document frame") } }, 262 { AccessibilityRole::GraphicsObject, { "panel", N_("panel") } }, 263 { AccessibilityRole::GraphicsSymbol, { "image", N_("image") } }, 264 { AccessibilityRole::Grid, { "table", N_("table") } }, 265 { AccessibilityRole::GridCell, { "table cell", N_("table cell") } }, 238 266 { AccessibilityRole::Group, { "panel", N_("panel") } }, 239 { AccessibilityRole::TextGroup, { "section", N_("section") } }, 240 { AccessibilityRole::RadioGroup, { "panel", N_("panel") } }, 241 { AccessibilityRole::List, { "list", N_("list") } }, 242 { AccessibilityRole::Directory, { "directory pane", N_("directory pane") } }, 243 { AccessibilityRole::ScrollBar, { "scroll bar", N_("scroll bar") } }, 267 { AccessibilityRole::Heading, { "heading", N_("heading") } }, 268 { AccessibilityRole::HorizontalRule, { "separator", N_("separator") } }, 269 { AccessibilityRole::Inline, { "text", N_("text") } }, 244 270 { AccessibilityRole::Image, { "image", N_("image") } }, 245 { AccessibilityRole::MenuBar, { "menu bar", N_("menu bar") } }, 246 { AccessibilityRole::Menu, { "menu", N_("menu") } }, 247 { AccessibilityRole::MenuItem, { "menu item", N_("menu item") } }, 248 { AccessibilityRole::MenuItemCheckbox, { "check menu item", N_("check menu item") } }, 249 { AccessibilityRole::MenuItemRadio, { "radio menu item", N_("radio menu item") } }, 250 { AccessibilityRole::Row, { "table row", N_("table row") } }, 251 { AccessibilityRole::Toolbar, { "tool bar", N_("tool bar") } }, 252 { AccessibilityRole::BusyIndicator, { "progress bar", N_("progress bar") } }, 253 { AccessibilityRole::ProgressIndicator, { "progress bar", N_("progress bar") } }, 254 { AccessibilityRole::Meter, { "level bar", N_("level bar") } }, 255 { AccessibilityRole::Window, { "window", N_("window") } }, 256 { AccessibilityRole::Outline, { "tree", N_("tree") } }, 257 { AccessibilityRole::ComboBox, { "combo box", N_("combo box") } }, 258 { AccessibilityRole::SplitGroup, { "split pane", N_("split pane") } }, 259 { AccessibilityRole::Splitter, { "separator", N_("separator") } }, 260 { AccessibilityRole::ColorWell, { "push button", N_("push button") } }, 261 { AccessibilityRole::Link, { "link", N_("link") } }, 262 { AccessibilityRole::Grid, { "table", N_("table") } }, 263 { AccessibilityRole::TreeGrid, { "tree table", N_("tree table") } }, 264 { AccessibilityRole::WebCoreLink, { "link", N_("link") } }, 271 { AccessibilityRole::ImageMap, { "image map", N_("image map") } }, 265 272 { AccessibilityRole::ImageMapLink, { "link", N_("link") } }, 266 { AccessibilityRole::ImageMap, { "image map", N_("image map") } }, 267 { AccessibilityRole::ListMarker, { "text", N_("text") } }, 268 { AccessibilityRole::WebArea, { "document web", N_("document web") } }, 269 { AccessibilityRole::Heading, { "heading", N_("heading") } }, 270 { AccessibilityRole::ListBox, { "heading", N_("list box") } }, 271 { AccessibilityRole::ListBoxOption, { "list item", N_("list item") } }, 272 { AccessibilityRole::Cell, { "table cell", N_("table cell") } }, 273 { AccessibilityRole::GridCell, { "table cell", N_("table cell") } }, 274 { AccessibilityRole::ColumnHeader, { "column header", N_("column header") } }, 275 { AccessibilityRole::RowHeader, { "row header", N_("row header") } }, 276 { AccessibilityRole::Definition, { "definition", N_("definition") } }, 277 { AccessibilityRole::DescriptionListDetail, { "description value", N_("description value") } }, 278 { AccessibilityRole::DescriptionListTerm, { "description term", N_("description term") } }, 279 { AccessibilityRole::Term, { "description term", N_("description term") } }, 280 { AccessibilityRole::DescriptionList, { "description list", N_("description list") } }, 273 { AccessibilityRole::Insertion, { "content insertion", N_("content insertion") } }, 274 { AccessibilityRole::Label, { "label", N_("label") } }, 281 275 { AccessibilityRole::LandmarkBanner, { "landmark", N_("landmark") } }, 282 276 { AccessibilityRole::LandmarkComplementary, { "landmark", N_("landmark") } }, 277 { AccessibilityRole::LandmarkContentInfo, { "landmark", N_("landmark") } }, 283 278 { AccessibilityRole::LandmarkDocRegion, { "landmark", N_("landmark") } }, 284 { AccessibilityRole::LandmarkContentInfo, { "landmark", N_("landmark") } },285 279 { AccessibilityRole::LandmarkMain, { "landmark", N_("landmark") } }, 286 280 { AccessibilityRole::LandmarkNavigation, { "landmark", N_("landmark") } }, 287 281 { AccessibilityRole::LandmarkRegion, { "landmark", N_("landmark") } }, 288 282 { AccessibilityRole::LandmarkSearch, { "landmark", N_("landmark") } }, 289 { AccessibilityRole::ApplicationAlert, { "notification", N_("notification") } }, 290 { AccessibilityRole::ApplicationAlertDialog, { "alert", N_("alert") } }, 291 { AccessibilityRole::ApplicationDialog, { "dialog", N_("dialog") } }, 292 { AccessibilityRole::ApplicationGroup, { "grouping", N_("grouping") } }, 293 { AccessibilityRole::ApplicationTextGroup, { "section", N_("section") } }, 294 { AccessibilityRole::ApplicationLog, { "log", N_("log") } }, 295 { AccessibilityRole::ApplicationMarquee, { "marquee", N_("marquee") } }, 296 { AccessibilityRole::ApplicationStatus, { "statusbar", N_("statusbar") } }, 297 { AccessibilityRole::ApplicationTimer, { "timer", N_("timer") } }, 298 { AccessibilityRole::Document, { "document frame", N_("document frame") } }, 299 { AccessibilityRole::DocumentArticle, { "article", N_("article") } }, 300 { AccessibilityRole::DocumentMath, { "math", N_("math") } }, 301 { AccessibilityRole::DocumentNote, { "comment", N_("comment") } }, 302 { AccessibilityRole::UserInterfaceTooltip, { "tool tip", N_("tool tip") } }, 303 { AccessibilityRole::Tab, { "page tab", N_("page tab") } }, 283 { AccessibilityRole::Legend, { "label", N_("label") } }, 284 { AccessibilityRole::Link, { "link", N_("link") } }, 285 { AccessibilityRole::List, { "list", N_("list") } }, 286 { AccessibilityRole::ListBox, { "heading", N_("list box") } }, 287 { AccessibilityRole::ListBoxOption, { "list item", N_("list item") } }, 288 { AccessibilityRole::ListItem, { "list item", N_("list item") } }, 289 { AccessibilityRole::ListMarker, { "text", N_("text") } }, 290 { AccessibilityRole::Mark, { "mar", N_("mark") } }, 291 { AccessibilityRole::MathElement, { "math", N_("math") } }, 292 { AccessibilityRole::Menu, { "menu", N_("menu") } }, 293 { AccessibilityRole::MenuBar, { "menu bar", N_("menu bar") } }, 294 { AccessibilityRole::MenuButton, { "menu item", N_("menu item") } }, 295 { AccessibilityRole::MenuItem, { "menu item", N_("menu item") } }, 296 { AccessibilityRole::MenuItemCheckbox, { "check menu item", N_("check menu item") } }, 297 { AccessibilityRole::MenuItemRadio, { "radio menu item", N_("radio menu item") } }, 298 { AccessibilityRole::Meter, { "level bar", N_("level bar") } }, 299 { AccessibilityRole::Outline, { "tree", N_("tree") } }, 300 { AccessibilityRole::Paragraph, { "paragraph", N_("paragraph") } }, 301 { AccessibilityRole::PopUpButton, { "combo box", N_("combo box") } }, 302 { AccessibilityRole::Pre, { "section", N_("section") } }, 303 { AccessibilityRole::ProgressIndicator, { "progress bar", N_("progress bar") } }, 304 { AccessibilityRole::RadioButton, { "radio button", N_("radio button") } }, 305 { AccessibilityRole::RadioGroup, { "panel", N_("panel") } }, 306 { AccessibilityRole::RowHeader, { "row header", N_("row header") } }, 307 { AccessibilityRole::Row, { "table row", N_("table row") } }, 308 { AccessibilityRole::ScrollArea, { "scroll pane", N_("scroll pane") } }, 309 { AccessibilityRole::ScrollBar, { "scroll bar", N_("scroll bar") } }, 310 { AccessibilityRole::SearchField, { "entry", N_("entry") } }, 311 { AccessibilityRole::Slider, { "slider", N_("slider") } }, 312 { AccessibilityRole::SpinButton, { "spin button", N_("spin button") } }, 313 { AccessibilityRole::SplitGroup, { "split pane", N_("split pane") } }, 314 { AccessibilityRole::Splitter, { "separator", N_("separator") } }, 315 { AccessibilityRole::StaticText, { "text", N_("text") } }, 316 { AccessibilityRole::Subscript, { "subscript", N_("subscript") } }, 317 { AccessibilityRole::Superscript, { "superscript", N_("superscript") } }, 318 { AccessibilityRole::Switch, { "toggle button", N_("toggle button") } }, 319 { AccessibilityRole::SVGRoot, { "panel", N_("panel") } }, 320 { AccessibilityRole::SVGText, { "section", N_("section") } }, 321 { AccessibilityRole::SVGTSpan, { "text", N_("text") } }, 322 { AccessibilityRole::SVGTextPath, { "text", N_("text") } }, 323 { AccessibilityRole::TabGroup, { "page tab list", N_("page tab list") } }, 304 324 { AccessibilityRole::TabList, { "page tab list", N_("page tab list") } }, 305 325 { AccessibilityRole::TabPanel, { "scroll pane", N_("scroll pane") } }, 326 { AccessibilityRole::Tab, { "page tab", N_("page tab") } }, 327 { AccessibilityRole::Table, { "table", N_("table") } }, 328 { AccessibilityRole::Term, { "description term", N_("description term") } }, 329 { AccessibilityRole::TextArea, { "entry", N_("entry") } }, 330 { AccessibilityRole::TextField, { "entry", N_("entry") } }, 331 { AccessibilityRole::TextGroup, { "section", N_("section") } }, 332 { AccessibilityRole::Time, { "text", N_("text") } }, 306 333 { AccessibilityRole::Tree, { "tree", N_("tree") } }, 334 { AccessibilityRole::TreeGrid, { "tree table", N_("tree table") } }, 307 335 { AccessibilityRole::TreeItem, { "tree item", N_("tree item") } }, 308 { AccessibilityRole::ListItem, { "list item", N_("list item") } },309 { AccessibilityRole::Paragraph, { "paragraph", N_("paragraph") } },310 { AccessibilityRole::Label, { "label", N_("label") } },311 { AccessibilityRole::Div, { "section", N_("section") } },312 { AccessibilityRole::Form, { "form", N_("form") } },313 { AccessibilityRole::SpinButton, { "spin button", N_("spin button") } },314 { AccessibilityRole::Footer, { "footer", N_("footer") } },315 336 { AccessibilityRole::ToggleButton, { "toggle button", N_("toggle button") } }, 316 { AccessibilityRole::Canvas, { "canvas", N_("canvas") } }, 317 { AccessibilityRole::SVGRoot, { "panel", N_("panel") } }, 318 { AccessibilityRole::Legend, { "label", N_("label") } }, 319 { AccessibilityRole::MathElement, { "math", N_("math") } }, 320 { AccessibilityRole::Audio, { "audio", N_("audio") } }, 337 { AccessibilityRole::Toolbar, { "tool bar", N_("tool bar") } }, 338 { AccessibilityRole::Unknown, { "unknown", N_("unknown") } }, 339 { AccessibilityRole::UserInterfaceTooltip, { "tool tip", N_("tool tip") } }, 321 340 { AccessibilityRole::Video, { "video", N_("video") } }, 322 { AccessibilityRole::HorizontalRule, { "separator", N_("separator") } }, 323 { AccessibilityRole::Blockquote, { "block quote", N_("block quote") } }, 324 { AccessibilityRole::Switch, { "toggle button", N_("toggle button") } }, 325 { AccessibilityRole::SearchField, { "entry", N_("entry") } }, 326 { AccessibilityRole::Pre, { "section", N_("section") } }, 327 { AccessibilityRole::SVGTextPath, { "text", N_("text") } }, 328 { AccessibilityRole::SVGText, { "section", N_("section") } }, 329 { AccessibilityRole::SVGTSpan, { "text", N_("text") } }, 330 { AccessibilityRole::Inline, { "text", N_("text") } }, 331 { AccessibilityRole::Mark, { "mar", N_("mark") } }, 332 { AccessibilityRole::Time, { "text", N_("text") } }, 333 { AccessibilityRole::Feed, { "panel", N_("panel") } }, 334 { AccessibilityRole::Figure, { "panel", N_("panel") } }, 335 { AccessibilityRole::Footnote, { "footnote", N_("footnote") } }, 336 { AccessibilityRole::GraphicsDocument, { "document frame", N_("document frame") } }, 337 { AccessibilityRole::GraphicsObject, { "panel", N_("panel") } }, 338 { AccessibilityRole::GraphicsSymbol, { "image", N_("image") } }, 339 { AccessibilityRole::Caption, { "caption", N_("caption") } }, 340 { AccessibilityRole::Deletion, { "content deletion", N_("content deletion") } }, 341 { AccessibilityRole::Insertion, { "content insertion", N_("content insertion") } }, 342 { AccessibilityRole::Subscript, { "subscript", N_("subscript") } }, 343 { AccessibilityRole::Superscript, { "superscript", N_("superscript") } } 341 { AccessibilityRole::WebArea, { "document web", N_("document web") } }, 342 { AccessibilityRole::WebCoreLink, { "link", N_("link") } }, 343 { AccessibilityRole::Window, { "window", N_("window") } } 344 344 }; 345 345 -
trunk/Tools/ChangeLog
r284675 r284676 1 2021-10-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK][a11y] Localized role name doesn't work with ATSPI enabled 4 https://bugs.webkit.org/show_bug.cgi?id=232136 5 6 Reviewed by Adrian Perez de Castro. 7 8 Add a few tests for localized role name. 9 10 * TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp: 11 (testAccessibleBasicHierarchy): 12 1 13 2021-10-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 14 -
trunk/Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp
r284675 r284676 201 201 g_assert_cmpstr(name.get(), ==, "This is a test"); 202 202 g_assert_cmpint(atspi_accessible_get_role(h1.get(), nullptr), ==, ATSPI_ROLE_HEADING); 203 name.reset(atspi_accessible_get_localized_role_name(h1.get(), nullptr)); 204 g_assert_cmpstr(name.get(), ==, "heading"); 203 205 204 206 auto p1 = adoptGRef(atspi_accessible_get_child_at_index(documentWeb.get(), 1, nullptr)); 205 207 g_assert_true(ATSPI_IS_ACCESSIBLE(p1.get())); 206 208 g_assert_cmpint(atspi_accessible_get_role(p1.get(), nullptr), ==, ATSPI_ROLE_PARAGRAPH); 209 name.reset(atspi_accessible_get_localized_role_name(p1.get(), nullptr)); 210 g_assert_cmpstr(name.get(), ==, "paragraph"); 207 211 208 212 auto p2 = adoptGRef(atspi_accessible_get_child_at_index(documentWeb.get(), 2, nullptr)); 209 213 g_assert_true(ATSPI_IS_ACCESSIBLE(p2.get())); 210 214 g_assert_cmpint(atspi_accessible_get_role(p2.get(), nullptr), ==, ATSPI_ROLE_PARAGRAPH); 215 name.reset(atspi_accessible_get_localized_role_name(p2.get(), nullptr)); 216 g_assert_cmpstr(name.get(), ==, "paragraph"); 211 217 212 218 auto link = adoptGRef(atspi_accessible_get_child_at_index(p2.get(), 0, nullptr)); … … 215 221 g_assert_cmpstr(name.get(), ==, "a link"); 216 222 g_assert_cmpint(atspi_accessible_get_role(link.get(), nullptr), ==, ATSPI_ROLE_LINK); 223 name.reset(atspi_accessible_get_localized_role_name(link.get(), nullptr)); 224 g_assert_cmpstr(name.get(), ==, "link"); 217 225 218 226 test->loadHtml(
Note:
See TracChangeset
for help on using the changeset viewer.