1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-24 15:26:15 +00:00

Move some accessibility properties from Node to Control

This commit is contained in:
Pāvels Nadtočajevs
2025-05-21 09:34:12 +03:00
parent 42c7f14422
commit aff5b413aa
9 changed files with 289 additions and 226 deletions

View File

@@ -1430,7 +1430,12 @@ void Window::_notification(int p_what) {
ERR_FAIL_COND(ae.is_null());
DisplayServer::get_singleton()->accessibility_update_set_role(ae, DisplayServer::AccessibilityRole::ROLE_WINDOW);
DisplayServer::get_singleton()->accessibility_update_set_name(ae, tr_title);
if (accessibility_name.is_empty()) {
DisplayServer::get_singleton()->accessibility_update_set_name(ae, tr_title);
} else {
DisplayServer::get_singleton()->accessibility_update_set_name(ae, accessibility_name);
}
DisplayServer::get_singleton()->accessibility_update_set_description(ae, accessibility_description);
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_MODAL, exclusive);
DisplayServer::get_singleton()->accessibility_update_add_action(ae, DisplayServer::AccessibilityAction::ACTION_FOCUS, callable_mp(this, &Window::_accessibility_action_grab_focus));
DisplayServer::get_singleton()->accessibility_update_set_flag(ae, DisplayServer::AccessibilityFlags::FLAG_HIDDEN, !visible);
@@ -2212,7 +2217,33 @@ Rect2i Window::get_usable_parent_rect() const {
return parent_rect;
}
void Window::set_accessibility_name(const String &p_name) {
ERR_MAIN_THREAD_GUARD;
if (accessibility_name != p_name) {
accessibility_name = p_name;
queue_accessibility_update();
update_configuration_warnings();
}
}
String Window::get_accessibility_name() const {
return tr(accessibility_name);
}
void Window::set_accessibility_description(const String &p_description) {
ERR_MAIN_THREAD_GUARD;
if (accessibility_description != p_description) {
accessibility_description = p_description;
queue_accessibility_update();
}
}
String Window::get_accessibility_description() const {
return tr(accessibility_description);
}
void Window::accessibility_announcement(const String &p_announcement) {
ERR_MAIN_THREAD_GUARD;
announcement = p_announcement;
queue_accessibility_update();
}
@@ -3198,6 +3229,11 @@ void Window::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_window_id"), &Window::get_window_id);
ClassDB::bind_method(D_METHOD("set_accessibility_name", "name"), &Window::set_accessibility_name);
ClassDB::bind_method(D_METHOD("get_accessibility_name"), &Window::get_accessibility_name);
ClassDB::bind_method(D_METHOD("set_accessibility_description", "description"), &Window::set_accessibility_description);
ClassDB::bind_method(D_METHOD("get_accessibility_description"), &Window::get_accessibility_description);
ClassDB::bind_static_method("Window", D_METHOD("get_focused_window"), &Window::get_focused_window);
ClassDB::bind_method(D_METHOD("set_layout_direction", "direction"), &Window::set_layout_direction);
@@ -3274,6 +3310,10 @@ void Window::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "auto_translate", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR), "set_auto_translate", "is_auto_translating");
#endif
ADD_GROUP("Accessibility", "accessibility_");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "accessibility_name"), "set_accessibility_name", "get_accessibility_name");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "accessibility_description"), "set_accessibility_description", "get_accessibility_description");
ADD_GROUP("Theme", "theme_");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "Theme"), "set_theme", "get_theme");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "theme_type_variation", PROPERTY_HINT_ENUM_SUGGESTION), "set_theme_type_variation", "get_theme_type_variation");