[webkit-changes] [WebKit/WebKit] da9699: [GTK] Implement GTK4 accessibility
Georges Basile Stavracas Neto
noreply at github.com
Wed Feb 7 00:38:20 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: da96990ed73dce54453c76e87a1ec3a648a8d8ee
https://github.com/WebKit/WebKit/commit/da96990ed73dce54453c76e87a1ec3a648a8d8ee
Author: Georges Basile Stavracas Neto <feaneron at igalia.com>
Date: 2024-02-07 (Wed, 07 Feb 2024)
Changed paths:
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
M Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp
M Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp
M Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp
Log Message:
-----------
[GTK] Implement GTK4 accessibility
https://bugs.webkit.org/show_bug.cgi?id=227528
Reviewed by Carlos Garcia Campos.
WebKit maintains a complete AT-SPI accessible tree within the web
process, under a separate D-Bus name. This conflicts with GTK4's
expectations of having instances of GtkAccessible objects in process
that can be built in an internal tree.
GTK4 recently introduced support for bridging out-of-process AT-SPI
accessible trees using a new GtkAtSpiSocket object that implements
GtkAccessible [1]. The availability of this object is guarded by the
GTK_ACCESSIBILITY_ATSPI ifdef.
Use this new socket object from GTK to bridge the web page accessible
tree, and the UI process' one. Mark the textview widget as hidden from
the accessible tree.
Create the GtkAtSpiSocket accessible when the web page reports to be
ready. Inject the socket accessible as the first GtkAccessible child
of WebKitWebViewBase.
[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6827
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseAccessibleGetFirstAccessibleChild):
(webkitWebViewBaseAccessibleInterfaceInit):
(webkitWebViewBaseSetPlugID):
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp:
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
* Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::bindAccessibilityTree):
* Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformInitialize):
Canonical link: https://commits.webkit.org/274201@main
More information about the webkit-changes
mailing list