Matthias Clasen [Wed, 28 Jun 2023 01:45:24 +0000 (21:45 -0400)]
Plug a memory leak in gsk tests
Pointed out by asan.
Matthias Clasen [Wed, 28 Jun 2023 01:40:22 +0000 (21:40 -0400)]
Plug a memory leak in gsk_render_node_serialize
This was introduced in
0d6a6a5997d with named
textures.
Benjamin Otte [Tue, 27 Jun 2023 21:30:03 +0000 (21:30 +0000)]
Merge branch 'dboles/issue5922-DropTarget-reject-enter-critical' into 'main'
DropTarget: Fix critical if `reject()` drop before `::enter`
Closes #5922
See merge request GNOME/gtk!6152
Daniel Boles [Tue, 27 Jun 2023 20:03:10 +0000 (21:03 +0100)]
DropTarget: Fix critical if reject drop pre-enter
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5922
The docs of `Gtk.DropTarget::accept` say this:
> If the decision whether the drop will be accepted or rejected depends
> on the data, [`::accept`] should return `TRUE`, [`:preload`] should be
> set and the value should be inspected via the `::notify:value` signal,
> calling `gtk_drop_target_reject()` if required.
But this pattern causes a CRITICAL, given these steps:
* Create a `DragSource` and `DropTarget`
* Keep the default `::accept` handler and set `:preload` to `TRUE`
* Connect to `notify::value` and therein call `DropTarget.reject()`
* CRITICAL at `DropTarget.enter()`→`Drop.get_actions()` on NULL instance
We should let the documented case work without a CRITICAL or worse, null
deref. And per @otte on the bug, we should bail earlier before `::enter`
& setting `GTK_STATE_FLAG_DROP_ACTIVE`; neither should occur if rejected
This fixes that, by checking after `start_drop()` when notifications are
thawed, whether any handler has `reject()`ed & set our `drop` to `NULL`.
Daniel Boles [Tue, 27 Jun 2023 08:54:52 +0000 (09:54 +0100)]
DropTarget: Fix `if` block indented 1 step too far
Matthias Clasen [Tue, 27 Jun 2023 19:55:28 +0000 (19:55 +0000)]
Merge branch 'fix-asan-ifunc' into 'main'
Fix fp16 with asan
See merge request GNOME/gtk!6153
Matthias Clasen [Tue, 27 Jun 2023 19:16:12 +0000 (15:16 -0400)]
Fix fp16 with asan
The IFUNC resolvers that we are using here get
run early, before asan had a chance to set up its
plumbing, and therefore things go badly if they
are compiled with asan. Turning it off makes things
work again.
The gcc bug tracking this problem:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110442
Thanks to Jakub Jelinek and Florian Weimer for
analyzing this and recommending the workaround.
Matthias Clasen [Tue, 27 Jun 2023 18:46:28 +0000 (18:46 +0000)]
Merge branch 'wip/sadiq/fix-use-after-free' into 'main'
gldriver: Fix a possible use-after-free
See merge request GNOME/gtk!6151
Mohammed Sadiq [Mon, 26 Jun 2023 02:35:52 +0000 (08:05 +0530)]
gldriver: Fix a possible use-after-free
g_hash_table_insert() frees the given key if it already exists
in the hashtable. But since we use the same pointer in the
following line, it will result in use-after-free.
So instead, insert the key only if it doesn't exist.
Benjamin Otte [Tue, 27 Jun 2023 16:20:29 +0000 (16:20 +0000)]
Merge branch 'wip/otte/for-vulkan' into 'main'
vulkan: Generate vertex array headers from shaders
See merge request GNOME/gtk!6149
Matthias Clasen [Tue, 27 Jun 2023 11:24:08 +0000 (11:24 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gtk4-builder-tool: Fix naming
See merge request GNOME/gtk!6150
Matthias Clasen [Tue, 27 Jun 2023 11:09:04 +0000 (07:09 -0400)]
gtk4-builder-tool: Fix naming
We install the tool as gtk4-builder-tool, so that
is what it should call itself.
String change.
Benjamin Otte [Tue, 27 Jun 2023 04:45:31 +0000 (06:45 +0200)]
vulkan: Generate vertex array headers from shaders
The script is pretty dumb but it does its job.
Benjamin Otte [Tue, 27 Jun 2023 04:28:52 +0000 (06:28 +0200)]
vulkan: Rename crossfade => cross-fade
Preparation for the future.
Benjamin Otte [Tue, 27 Jun 2023 04:05:33 +0000 (06:05 +0200)]
vulkan: Rename blendmode to blend-mode
Preparation for future changes, nothing to see here.
Benjamin Otte [Mon, 26 Jun 2023 18:52:48 +0000 (18:52 +0000)]
Merge branch 'wip/otte/vulkan-for-main' into 'main'
vulkan: Add a pipeline cache
See merge request GNOME/gtk!6148
Benjamin Otte [Mon, 26 Jun 2023 03:10:16 +0000 (05:10 +0200)]
vulkan: Add a pipeline cache
Make the display handle the cache, because we only need one.
We store the cache in
$CACHE_DIR/gtk-4.0/vulkan-pipeline-cache/$UUID.$VERSION
so we regenerate caches for each different device (different UUID) and
each different driver version.
We also keep track of the etag of the cache file, so if 2 different
applications update the cache, we can detect that.
Vulkan allows merging caches, so the 2nd app reloads the new cache file
and merges it into its cache before saving.
Matthias Clasen [Mon, 26 Jun 2023 18:18:14 +0000 (18:18 +0000)]
Merge branch 'main' into 'main'
Add settable search match mode in dropdown
See merge request GNOME/gtk!6146
Matthias Clasen [Mon, 26 Jun 2023 15:38:32 +0000 (15:38 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
buildertool: Make render an alias for screenshot
See merge request GNOME/gtk!6147
Matthias Clasen [Mon, 26 Jun 2023 14:57:11 +0000 (10:57 -0400)]
buildertool: Make render an alias for screenshot
Its a more neutral name and will align better with
other tools.
al_SeveR [Mon, 26 Jun 2023 14:14:39 +0000 (14:14 +0000)]
Add settable search match mode in dropdown
Leônidas Araújo [Mon, 26 Jun 2023 13:08:44 +0000 (13:08 +0000)]
Update Brazilian Portuguese translation
(cherry picked from commit
98a2aae5ac273f5c37a3edbc2d7bbad62ecb62f7)
Daniel Boles [Mon, 26 Jun 2023 12:04:43 +0000 (13:04 +0100)]
GtkText: Link to descendents/`monospace` CSS nodes
Change the descendent classes from `monospace`-without-links to links.
Add `monospace` around the names of CSS nodes and classes for clarity.
Matthias Clasen [Mon, 26 Jun 2023 02:28:23 +0000 (22:28 -0400)]
widget-factory: Set a11y labels on scale buttons
Just to check that this works now.
Ekaterine Papava [Sun, 25 Jun 2023 13:39:03 +0000 (13:39 +0000)]
Update Georgian translation
Matthias Clasen [Sat, 24 Jun 2023 12:08:18 +0000 (12:08 +0000)]
Merge branch 'gtkstack_fix_pages_param_check' into 'main'
stack: fix pages list bounds check
See merge request GNOME/gtk!6141
G.Willems [Sat, 24 Jun 2023 01:05:37 +0000 (03:05 +0200)]
stack: fix pages list bounds check
Fix integer underflow when children->len is 0.
Add missing bounds check in select_item()
Matthias Clasen [Fri, 23 Jun 2023 23:45:05 +0000 (23:45 +0000)]
Merge branch 'ebassi/builder-docs' into 'main'
docs: Clean up section on UI definitions
See merge request GNOME/gtk!6139
Matthias Clasen [Fri, 23 Jun 2023 23:43:28 +0000 (23:43 +0000)]
Merge branch 'wip/chergert/gdatetime-from-gtkbuilder' into 'main'
builder: add support for parsing GDateTime
See merge request GNOME/gtk!6140
Christian Hergert [Fri, 23 Jun 2023 21:11:37 +0000 (14:11 -0700)]
builder: add support for parsing GDateTime
This will parse a <property/> containing the ISO 8601 format for a date
for use in GDateTime properties. For example:
<property name="sampled-at">2023-06-23T00:00:00.00</property>
Emmanuele Bassi [Fri, 23 Jun 2023 13:16:44 +0000 (14:16 +0100)]
docs: Clean up section on UI definitions
The current documentation is narrative, but it lacks examples and proper
formatting, which makes it harder to read and visually scan.
Let's split off paragraphs and sections, so they can be easily linkend,
and add a few examples for each description.
Daniel Boles [Fri, 23 Jun 2023 13:24:47 +0000 (14:24 +0100)]
docs/ref/gtk/running: Mention GDK_DEBUG=no-portals
It was omitted from !5336
Daniel Boles [Fri, 23 Jun 2023 12:50:53 +0000 (13:50 +0100)]
FileDialog: Fix typos of "inital" to "initial"
Matthias Clasen [Fri, 23 Jun 2023 01:14:15 +0000 (01:14 +0000)]
Merge branch 'dboles/FileDialog_initial-folder_from_initial-file' into 'main'
Fix FileDialog: initial-file doesnʼt set initial-folder
See merge request GNOME/gtk!6137
Matthias Clasen [Fri, 23 Jun 2023 01:06:57 +0000 (01:06 +0000)]
Merge branch 'always-more-a11y-fixes' into 'main'
scalebutton: Use the group role
See merge request GNOME/gtk!6138
Matthias Clasen [Thu, 22 Jun 2023 22:37:10 +0000 (18:37 -0400)]
a11y: Extend the nested button hack to volume buttons
Matthias Clasen [Thu, 22 Jun 2023 22:36:39 +0000 (18:36 -0400)]
scalebutton: Use the group role
This is needed for accessible labels to work.
Daniel Boles [Thu, 22 Jun 2023 21:33:14 +0000 (22:33 +0100)]
FileDialog: initial-file didnʼt set initial-folder
We always set :initial-folder to NULL and then notified about that,
instead of setting it to the folder of the :initial-file as we say.
Jordi Mas [Thu, 22 Jun 2023 19:00:28 +0000 (21:00 +0200)]
Update Catalan translation
Matthias Clasen [Thu, 22 Jun 2023 02:40:08 +0000 (02:40 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
docs: Mention GtkAccessibleRange
See merge request GNOME/gtk!6136
Matthias Clasen [Thu, 22 Jun 2023 01:35:27 +0000 (21:35 -0400)]
docs: Mention GtkAccessibleRange
In the accessibility docs about custom widgets,
mention GtkAccessibleRange as the best way to
implement custom range widgets.
Matthias Clasen [Thu, 22 Jun 2023 00:47:03 +0000 (00:47 +0000)]
Merge branch 'more-a11y-fixes' into 'main'
widget: Don't let abstract role slip through
See merge request GNOME/gtk!6135
Matthias Clasen [Wed, 21 Jun 2023 20:06:39 +0000 (16:06 -0400)]
Add another a11y test
This one catches the lingering 'widget' role
that only happens when widgets are realized
and rooted.
Matthias Clasen [Wed, 21 Jun 2023 20:16:11 +0000 (16:16 -0400)]
a11y: Use group role for color and font buttons
This is needed since generic does not allow naming.
Matthias Clasen [Wed, 21 Jun 2023 20:05:29 +0000 (16:05 -0400)]
widget: Don't let abstract role slip through
When there isn't an accessible role set on the
instance or in class_init, we want to default
to 'generic'. There was one place where we
failed to do so.
Matthias Clasen [Wed, 21 Jun 2023 19:39:28 +0000 (15:39 -0400)]
Cosmetics: typo fix
Daniel Boles [Wed, 21 Jun 2023 19:48:17 +0000 (20:48 +0100)]
Settings: prop typo => "No description available."
Fix the typo so that we'll actually get documentation for
gtk-entry-select-on-focus.
Matthias Clasen [Wed, 21 Jun 2023 18:52:35 +0000 (18:52 +0000)]
Merge branch 'more-a11y-fixes' into 'main'
a11y: Don't forget to space-separate computed names
See merge request GNOME/gtk!6134
Matthias Clasen [Wed, 21 Jun 2023 18:21:37 +0000 (14:21 -0400)]
Add another a11y test
Test that roles come out right for custom widgets.
Matthias Clasen [Wed, 21 Jun 2023 18:17:52 +0000 (14:17 -0400)]
Dropdown: Explicitly set a role
For some reason I haven't been able to track down,
the listitemwidget comes up wit the abstract widget
role otherwise.
Matthias Clasen [Wed, 21 Jun 2023 17:47:59 +0000 (13:47 -0400)]
aboutdialog: Fix roles one more time
We are more picky about generic, so use group.
Matthias Clasen [Wed, 21 Jun 2023 17:18:58 +0000 (13:18 -0400)]
shortcutswindow: Fix up roles and labels again
Matthias Clasen [Wed, 21 Jun 2023 17:18:07 +0000 (13:18 -0400)]
a11y: Don't forget to space-separate computed names
This was overlooked in one place.
Matthias Clasen [Wed, 21 Jun 2023 12:01:00 +0000 (12:01 +0000)]
Merge branch 'wip/antoniof/my-mistake' into 'main'
Fix my a mistake
See merge request GNOME/gtk!6130
António Fernandes [Wed, 21 Jun 2023 11:23:39 +0000 (12:23 +0100)]
columnviewrowwidget: Reset roles on teardown
This was added to the wrong file in
e245883f911bb2f9d1df6beaeb7edd332f797990
Fix the mistake.
Matthias Clasen [Wed, 21 Jun 2023 10:22:41 +0000 (10:22 +0000)]
Merge branch 'wip/antoniof/columnviewrow-accessible-label' into 'main'
columnviewrow: Add accessible-label and -description
Closes #5903
See merge request GNOME/gtk!6129
Matthias Clasen [Wed, 21 Jun 2023 10:07:57 +0000 (10:07 +0000)]
Merge branch 'always-more-a11y-fixes' into 'main'
range: Don't use an abstract role
See merge request GNOME/gtk!6127
Matthias Clasen [Wed, 21 Jun 2023 10:07:40 +0000 (10:07 +0000)]
Merge branch 'bump-glib' into 'main'
Bump GLib requirement to 2.76.0
See merge request GNOME/gtk!6128
António Fernandes [Wed, 21 Jun 2023 09:24:54 +0000 (10:24 +0100)]
columnviewrow: Add accessible-label and -description
Echoing the same changes introduced for GtkListItem by these commits:
*
df8d28f5fead251b725cf4cfe7d6da7cc429eb21
*
f2b682dd9cd87b3b4cd2f1f662c5a06624b294a2
Resolves https://gitlab.gnome.org/GNOME/gtk/-/issues/5903
Chun-wei Fan [Wed, 21 Jun 2023 04:24:40 +0000 (12:24 +0800)]
Visual Studio: Remove workarounds for <= glib-2.74.x
We now need glib-2.76.0 or later, which removes our needs for the workarounds
that we need to build the media backends against GLib-2.74.x or earlier, so
clean up things a bit.
Chun-wei Fan [Wed, 21 Jun 2023 04:00:42 +0000 (12:00 +0800)]
glib.wrap: Use 2.76.0
We are now using APIs that were introduced in 2.75.x, so let's use glib-2.76.0
here for our glib subproject.
Update the build and gobject-introspection items accordingly
Matthias Clasen [Wed, 21 Jun 2023 02:02:37 +0000 (22:02 -0400)]
Make generic really the default role
If nothing else has been set for the instance
or the class, return GTK_ACCESSIBLE_ROLE_GENERIC.
Matthias Clasen [Wed, 21 Jun 2023 01:57:50 +0000 (21:57 -0400)]
frame: Use the group role
Matthias Clasen [Wed, 21 Jun 2023 00:48:44 +0000 (20:48 -0400)]
ci: Use the current build options for flatpaks
These were changed a while ago.
Matthias Clasen [Wed, 21 Jun 2023 00:48:01 +0000 (20:48 -0400)]
a11y: Fix the stack switcher selection implementation
This was listening for signals on the wrong object.
Matthias Clasen [Tue, 20 Jun 2023 18:26:22 +0000 (14:26 -0400)]
NEWS: updates
Matthias Clasen [Tue, 20 Jun 2023 17:46:44 +0000 (13:46 -0400)]
range: Don't use an abstract role
This snuck through, because the range wasn't
setting any role at all, it just ends up using
the initial, abstract role of widget.
Benjamin Otte [Tue, 20 Jun 2023 18:38:41 +0000 (18:38 +0000)]
Merge branch 'wip/otte/for-vulkan' into 'main'
vulkan: Fix a bunch of validation-layer complaints
See merge request GNOME/gtk!6126
Benjamin Otte [Tue, 20 Jun 2023 18:16:07 +0000 (20:16 +0200)]
vulkan: Rebuild the precompiled shaders
We forgot that with all the changes.
Benjamin Otte [Tue, 20 Jun 2023 14:35:55 +0000 (16:35 +0200)]
vulkan: Take offscreen fromat from context
We want to create offscreens in compatible formats, and in particular we
want to ideally use the same format as rendering would use.
Benjamin Otte [Tue, 20 Jun 2023 13:39:29 +0000 (15:39 +0200)]
vulkan: Use 3 descriptor sets, not 3 bindings
It turns out variable length is only supported for the last binding in
a set, not for every binding.
So we need to create one set for each of our arrays.
[ VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004 ] Object 0: handle = 0x33a9f10, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xd3f353a | vkCreateDescriptorSetLayout(): pBindings[0] has VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT but 0 is the largest value of all the bindings. The Vulkan spec states: If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004)
Benjamin Otte [Tue, 20 Jun 2023 13:32:23 +0000 (15:32 +0200)]
vulkan: Use the right flags
Somebody (me) had flipped the 2 flags in commit
ba28971a183:
[ VUID-vkCmdCopyBufferToImage-srcBuffer-00174 ] Object 0: handle = 0x3cfaac0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x430000000043, type = VK_OBJECT_TYPE_BUFFER; | MessageID = 0xe1b276a1 | Invalid usage flag for VkBuffer 0x430000000043[] used by vkCmdCopyBufferToImage. In this case, VkBuffer should have VK_BUFFER_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdCopyBufferToImage-srcBuffer-00174)
Benjamin Otte [Tue, 20 Jun 2023 13:29:45 +0000 (15:29 +0200)]
vulkan: Set descriptorBindingStorageBufferUpdateAfterBind
It's necessary now that we use storage buffers for gradients:
[ VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008 ] Object 0: handle = 0x1e72d70, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x943cc552 | vkCreateDescriptorSetLayout(): pBindings[0] can't have VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT for VK_DESCRIPTOR_TYPE_STORAGE_BUFFER since descriptorBindingStorageBufferUpdateAfterBind is not enabled. The Vulkan spec states: If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008)
Benjamin Otte [Mon, 19 Jun 2023 17:29:13 +0000 (19:29 +0200)]
vulkan: Remove unused declaration from shader
Matthias Clasen [Tue, 20 Jun 2023 17:13:51 +0000 (17:13 +0000)]
Merge branch 'always-more-a11y-fixes' into 'main'
Add a comment about accessible naming
See merge request GNOME/gtk!6125
Matthias Clasen [Tue, 20 Jun 2023 16:34:01 +0000 (12:34 -0400)]
a11y: Improve name computation
We only want to settle on subtree content
if it provides nonempty text. Otherwise,
the tooltip should still win.
This was clarified in the current Editor Draft
of the accessible name computation spec.
Matthias Clasen [Tue, 20 Jun 2023 16:33:02 +0000 (12:33 -0400)]
a11y: Fix tests
The change to make hidden follow mappedness
means that we now need to arrange for our
test cases to be mapped.
Matthias Clasen [Tue, 20 Jun 2023 15:05:22 +0000 (11:05 -0400)]
Add some more a11y tests
Check that the hidden state is as it should be.
Matthias Clasen [Tue, 20 Jun 2023 14:56:41 +0000 (10:56 -0400)]
menubutton: Remove all the labelled-by relations
This was a bit much, and should not be necessary anymore,
now that our name computation handles nested buttons.
Matthias Clasen [Tue, 20 Jun 2023 14:40:12 +0000 (10:40 -0400)]
widget: Fix accessible hidden state
Make this track the widgets' mapped state
instead of visible. Also, set hidden to FALSE
initially, since the accessible name computation
checks for hidden==FALSE.
Matthias Clasen [Tue, 20 Jun 2023 10:53:34 +0000 (06:53 -0400)]
Add a comment about accessible naming
Put a note on why there are a few differences
to ARIA.
Matthias Clasen [Tue, 20 Jun 2023 01:43:18 +0000 (21:43 -0400)]
NEWS: Updates
Matthias Clasen [Tue, 20 Jun 2023 09:55:58 +0000 (09:55 +0000)]
Merge branch 'listitem-a11y' into 'main'
listitem: Add accessible-label and -description
See merge request GNOME/gtk!6123
Matthias Clasen [Tue, 20 Jun 2023 02:14:23 +0000 (22:14 -0400)]
a11y: Stop recommending tab list labels
There is no good way to set an explicit label
on the tab list of a GtkNotebook, so showing
a blue overlay on it is annoying more than
helpful.
This is another little deviation from the ARIA
authoring guidelines.
Matthias Clasen [Tue, 20 Jun 2023 02:12:05 +0000 (22:12 -0400)]
a11y: Stop recommending against listitem labels
Due to the way listviews are set up, there is not
much of an alternative to setting labels on the
listitems, so don't recommend against doing it.
This is a little deviation from the ARIA authoring
guidelines.
Matthias Clasen [Tue, 20 Jun 2023 02:11:14 +0000 (22:11 -0400)]
gizmo: Stop using abstract roles
This was overlooked.
Matthias Clasen [Tue, 20 Jun 2023 02:10:45 +0000 (22:10 -0400)]
gtk-demo: Some a11y improvements
Add missing labels to the applauncher demo
and the clocks demo.
Matthias Clasen [Tue, 20 Jun 2023 01:50:45 +0000 (21:50 -0400)]
listitemwidget: Clean up in teardown
Matthias Clasen [Tue, 20 Jun 2023 01:23:13 +0000 (01:23 +0000)]
Merge branch 'a11y-work' into 'main'
A11y role changes
See merge request GNOME/gtk!6101
Matthias Clasen [Tue, 20 Jun 2023 01:06:50 +0000 (21:06 -0400)]
gtk-demo: Improve a11y for applauncher
Use the new listitem properties to make
orca read the selected item in the applauncher
demo.
Matthias Clasen [Tue, 20 Jun 2023 01:05:51 +0000 (21:05 -0400)]
listitem: Add accessible-label and -description
Add properties to GtkListItem to set the accessible
label and description of the listitem widget. This
is important, since orca will read these if the
listitem widget ends up with the focus.
Matthias Clasen [Fri, 16 Jun 2023 22:40:19 +0000 (18:40 -0400)]
a11y: Add the ARIA ontology
Add a helper function to find out which roles are
superclasses of each other.
This isn't used yet (apart from the existing use for
ranges), but it might be in the future.
Matthias Clasen [Fri, 16 Jun 2023 23:04:06 +0000 (19:04 -0400)]
Docs: update
Matthias Clasen [Fri, 16 Jun 2023 19:42:42 +0000 (15:42 -0400)]
a11y: Treat widget and window as abstract roles
We no longer use these, so we can enforce
that they are abstract.
Matthias Clasen [Fri, 16 Jun 2023 23:03:49 +0000 (19:03 -0400)]
window: Use application as accessible role
ARIA deems the window role to be abstract,
so lets use the application role instead.
Update affected tests.
Matthias Clasen [Fri, 16 Jun 2023 19:56:39 +0000 (15:56 -0400)]
Add the application role
ARIA has this role. We left it out initially, but
it is an ok fit for toplevel windows, and better
than window, since that is meant to be abstract.
Matthias Clasen [Fri, 16 Jun 2023 19:26:03 +0000 (15:26 -0400)]
Use generic as default accessible role
The ARIA specs want widget to be abstract role.
We should respect that and use 'generic' instead.
Matthias Clasen [Fri, 16 Jun 2023 19:14:57 +0000 (15:14 -0400)]
widget: Warn for abstract accessible roles
These should not be used for widgets, so warn if
they are passed to gtk_widget_set_accessible_role()
or gtk_widget_class_set_accessible_role().
Matthias Clasen [Fri, 16 Jun 2023 18:55:06 +0000 (14:55 -0400)]
Add gtk_accessible_role_is_abstract
Move this code from the a11y overlay in the inspector.
It will be used more widely, going forward.
Matthias Clasen [Mon, 19 Jun 2023 16:35:36 +0000 (12:35 -0400)]
Add another a11y test