20 Commits

Author SHA1 Message Date
Pāvels Nadtočajevs
eeafab862d Increase max RID count for some owners, decrease RID usage by RichTextLabel. 2026-04-07 17:07:23 +03:00
Jos van Egmond
3ade83cd1b Fix (accessibility): strip spaces and only set label if full name is not empty.
When no name and extra info is set, it would still add a space. is_empty() would never be true. The space character would be set as label and screen readers are prompted to read it with various output. Fixed by stripping spaces.
2026-03-24 00:43:34 +01:00
Pāvels Nadtočajevs
dd0387fcb0 Remove AccessKit dynamic wrappers, add download script and build warning if libs are missing. 2026-03-11 14:52:38 +02:00
Pāvels Nadtočajevs
2bc2e93e88 Update AccessKit to 0.21.1 2026-03-09 20:39:42 +02:00
Rémi Verschelde
8c0f175c94 Decouple RenderingServer from as much of the codebase as possible
Notably decouples it from:
- AccessibilityServer
- DisplayServer
- Viewport
- Window
2026-03-03 12:48:07 +01:00
Rémi Verschelde
a447ac95ec Move DisplayServer enums and typedefs to DisplayServerEnums
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
2026-03-03 12:44:02 +01:00
Pāvels Nadtočajevs
1306221592 Move accessibility methods/enums from DisplayServer to the AccessibilityServer dedicated singleton. 2026-03-02 13:48:29 +02:00
Pāvels Nadtočajevs
876dcc8a5d [Accessibility] Handle adapter activation/deactivation. 2026-02-18 16:54:40 +02:00
Nolan Darilek
d53ab67b83 GUI: Add accessibility region role for landmark navigation
Adds ROLE_REGION to allow controls to be marked as accessibility
regions/landmarks.

- Add `accessibility_region` property to Control
- Add ROLE_REGION to DisplayServer and AccessKit mapping
- Prevent Container/ScrollContainer from overriding region role
- Fix TabContainer to update accessibility when tabs change
- Mark editor docks, main screen, bottom panel, and scene tabs as regions
2026-01-19 08:12:33 -05:00
Pāvels Nadtočajevs
f7a10145ae Update access-kit to 0.18.0 2025-12-14 01:05:36 +02:00
Nolan Darilek
abf7b3c2ee Accessibility: Re-apply stored name when recreating nodes in _ensure_node
When TabContainer calls accessibility_update_add_related_controls(), it
triggers _ensure_node() which creates a new AccessKit node. Since the
node pointer was nulled after the previous tree update push, this creates
an empty node without any properties.

TabBar only sets tab properties (name, bounds) when accessibility_item_dirty
is true. After initial setup, dirty=false, so recreated nodes would be
pushed without names, causing screen readers to announce "page tab" without
the tab name.

This fix re-applies the stored name (and name_extra_info) when _ensure_node
creates a new node, ensuring tab names persist across node recreations.
2025-12-03 18:50:11 -05:00
Nolan Darilek
6304e9f876 Accessibility: Fix text field character count and line navigation
Two fixes for text field accessibility:

1. Fix character count being off by one due to trailing newline always
   being appended to the last line. Add `is_last_line` parameter to
   `accessibility_create_sub_text_edit_elements()` to control this.

2. Link adjacent TextRuns via `previous_on_line`/`next_on_line` so
   screen readers can properly navigate lines. Without these links,
   AccessKit treats each TextRun as a separate line, causing incorrect
   announcements when arrowing through multi-line text.
2025-12-03 07:19:05 -05:00
chocola-mint
ead282ff13 Remove file_access.h and script_backtrace.h includes from logger.h. 2025-10-05 17:49:23 +09:00
Aaron Franke
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Talkashie
3ff4e29657 Typo fix round 2 2025-08-20 04:24:06 -05:00
Talkashie
bc7e68dfd1 Typos 2025-08-19 18:32:59 -05:00
Pāvels Nadtočajevs
3f757c41fc Update access-kit to 0.17.0 2025-07-29 08:37:01 +03:00
Pāvels Nadtočajevs
6565c8e83f [AccessKit] Update API to 0.16.0. 2025-06-03 10:49:04 +03:00
Lukas Tenbrink
4cb8a0c77e Add resize_initialized and resize_uninitialized to Vector. These functions serve as replacements for resize, to make sure the caller understands whether elements need to be initialized 'by hand' after the call. 2025-05-26 18:35:41 +02:00
Pāvels Nadtočajevs
4310cb82b8 AccessKit integration for macOS, Linux, and Windows. 2025-04-08 20:25:47 +03:00