[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