Merge pull request #3390 from nledford/flatpak-a11y-bus

LR-BEHAV-ACCESS: the Flatpak may talk to the accessibility bus, so Orca can read LightCraft
This commit is contained in:
Brandon Thomas
2026-10-31 13:11:30 -04:00
committed by GitHub
5 changed files with 16 additions and 2 deletions
File diff suppressed because one or more lines are too long
+3
View File
@@ -2,6 +2,9 @@
## 2026-10-30
### The Flatpak may talk to the accessibility bus
- The Flatpak package now has access to the accessibility bus (`org.a11y.Bus`) and no other new permission; its network, Pictures folder and GPU access are unchanged. Without it the sandbox hid the bus, which AccessKit needs to reach a screen reader such as Orca; this has not been tried with Orca yet. The Flatpak build is the only one affected.
### A keyboard shortcut for Clear Color Label
- Clear Color Label is now a command of its own in Help ▸ Keyboard Shortcuts, so it can have a key like Set Rating or
Set Flag; before, only the red, yellow, green and blue labels (6–9) had keys and clearing a label was menu-only. It has
+2
View File
@@ -17,6 +17,8 @@ for name in ("ai.storyteller.lightcraft.yml", "ai.storyteller.lightcraft.bundle.
with open("packaging/linux/flatpak/" + name) as source:
manifest = yaml.safe_load(source)
assert manifest["id"] == "ai.storyteller.lightcraft" and manifest["command"] == "lightcraft", name
# Without this talk-name the sandbox hides the accessibility bus and Orca cannot see the app.
assert "--talk-name=org.a11y.Bus" in manifest["finish-args"], f"{name} lost --talk-name=org.a11y.Bus"
manifests.append(manifest)
for key in ("runtime", "runtime-version", "sdk", "finish-args"):
assert manifests[0][key] == manifests[1][key], f"Flatpak manifests disagree on {key}"
@@ -25,6 +25,10 @@ finish-args:
- --share=ipc
# GPU access for the wgpu renderer (Vulkan, or GL as a fallback).
- --device=dri
# Screen readers: AccessKit asks the accessibility bus (org.a11y.Bus) whether one is running and
# publishes the window there over AT-SPI. Without it the sandbox hides the bus and the app is
# invisible to Orca and other assistive technology.
- --talk-name=org.a11y.Bus
# The library lives in ~/Pictures/LightCraft Library by default, and imports usually come from
# Pictures. Open/Save dialogs go through the file-chooser portal (rfd's xdg-portal backend) and
# drag-and-drop through the document portal, so picked folders elsewhere work without broad
@@ -31,6 +31,10 @@ finish-args:
- --share=ipc
# GPU access for the wgpu renderer (Vulkan, or GL as a fallback).
- --device=dri
# Screen readers: AccessKit asks the accessibility bus (org.a11y.Bus) whether one is running and
# publishes the window there over AT-SPI. Without it the sandbox hides the bus and the app is
# invisible to Orca and other assistive technology.
- --talk-name=org.a11y.Bus
# The library lives in ~/Pictures/LightCraft Library by default, and imports usually come from
# Pictures. Open/Save dialogs go through the file-chooser portal (rfd's xdg-portal backend) and
# drag-and-drop through the document portal, so picked folders elsewhere work without broad