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.
- Removes `native_menu.h` dependency from `display_server.h`.
It's now forward-declared in all DisplayServer implementations and should
be included in the .cpp's.
- Removes some unused `rb_set.h` and `rb_map.h` dependencies, which leads to
having to include them explicitly in half the scene and editor codebase...
which shows how much we depend on `display_server.h`.
- Forward-declare `input_event.h`, so now we need only `keyboard.h`.
This PR:
- Fixes the orientation detection logic on Android
- Adds an orientation_changed signal in DisplayServer
Co-Authored-By: bruvzg <7645683+bruvzg@users.noreply.github.com>
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
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.