diff --git a/src/ui/file_tree.rs b/src/ui/file_tree.rs index b09cc70c..c32f0ad6 100644 --- a/src/ui/file_tree.rs +++ b/src/ui/file_tree.rs @@ -2008,6 +2008,14 @@ impl Tty7App { }); let row_el = h_flex() .id(SharedString::from(format!("tree-{}", path.display()))) + .role(gpui::Role::TreeItem) + .aria_label(SharedString::from( + path.file_name() + .map(|n| n.to_string_lossy().into_owned()) + .unwrap_or_else(|| path.display().to_string()), + )) + .aria_selected(selected) + .when(is_dir, |r| r.aria_expanded(row.expanded)) .items_center() .gap(px(TREE_GAP)) .h(px(TREE_ROW_H)) diff --git a/src/ui/i18n/en.rs b/src/ui/i18n/en.rs index 19b29b9e..edcdbe3f 100644 --- a/src/ui/i18n/en.rs +++ b/src/ui/i18n/en.rs @@ -266,6 +266,7 @@ pub fn translate_en(key: L10nKey) -> &'static str { L10nKey::SettingsNavKeybindings => "Keyboard shortcuts", L10nKey::SettingsNavAbout => "About", L10nKey::SettingsHeader => "SETTINGS", + L10nKey::SettingsWindowTitle => "Settings", L10nKey::Reset => "Reset", L10nKey::Save => "Save", L10nKey::Connect => "Connect", diff --git a/src/ui/i18n/ja.rs b/src/ui/i18n/ja.rs index ef1db452..cc7ce59e 100644 --- a/src/ui/i18n/ja.rs +++ b/src/ui/i18n/ja.rs @@ -283,6 +283,7 @@ pub fn translate_ja(key: L10nKey) -> Option<&'static str> { L10nKey::SettingsNavKeybindings => "キーボードショートカット", L10nKey::SettingsNavAbout => "情報", L10nKey::SettingsHeader => "設定", + L10nKey::SettingsWindowTitle => "設定", L10nKey::Reset => "リセット", L10nKey::Save => "保存", L10nKey::Connect => "接続", diff --git a/src/ui/i18n/mod.rs b/src/ui/i18n/mod.rs index 79d25f41..392b84db 100644 --- a/src/ui/i18n/mod.rs +++ b/src/ui/i18n/mod.rs @@ -292,6 +292,7 @@ l10n_keys! { SettingsNavKeybindings, SettingsNavAbout, SettingsHeader, + SettingsWindowTitle, Reset, Save, Connect, diff --git a/src/ui/i18n/zh.rs b/src/ui/i18n/zh.rs index 94d870b1..35f4c1a3 100644 --- a/src/ui/i18n/zh.rs +++ b/src/ui/i18n/zh.rs @@ -239,6 +239,7 @@ pub fn translate_zh(key: L10nKey) -> Option<&'static str> { L10nKey::SettingsNavKeybindings => "快捷键", L10nKey::SettingsNavAbout => "关于", L10nKey::SettingsHeader => "设置", + L10nKey::SettingsWindowTitle => "设置", L10nKey::Reset => "重置", L10nKey::Save => "保存", L10nKey::Connect => "连接", diff --git a/src/ui/settings/shell.rs b/src/ui/settings/shell.rs index 175d8b0e..d16d641e 100644 --- a/src/ui/settings/shell.rs +++ b/src/ui/settings/shell.rs @@ -1140,6 +1140,9 @@ impl Tty7App { "settings-nav-{}", target.profile_label() ))) + .role(gpui::Role::Tab) + .aria_label(t(target.title())) + .aria_selected(active) .h(px(28.)) .px(px(8.)) .gap(px(10.)) diff --git a/src/ui/settings_window.rs b/src/ui/settings_window.rs index c1b5e887..86228f6d 100644 --- a/src/ui/settings_window.rs +++ b/src/ui/settings_window.rs @@ -30,6 +30,9 @@ pub(crate) fn window_options(cx: &mut App) -> WindowOptions { ))), app_id: Some("tty7".to_owned()), titlebar: Some(TitlebarOptions { + // Not drawn (the title bar is the window's own), but it is the + // name the Window menu, Mission Control and VoiceOver give it. + title: Some(crate::ui::i18n::t(crate::ui::i18n::L10nKey::SettingsWindowTitle).into()), traffic_light_position: Some(crate::ui::theme::traffic_light_position()), ..TitleBar::title_bar_options() }),