From 7ed2cb56a08df103a2e7fe5326f16d67cd384f59 Mon Sep 17 00:00:00 2001
From: G30 <50341825+silentoplayz@users.noreply.github.com>
Date: Fri, 23 Oct 2026 22:06:28 -0400
Subject: [PATCH] fix(a11y): the Settings tabs sit in Personal and Admin tab
lists for screen readers (#33064)
---
src/lib/components/chat/SettingsModal.svelte | 384 ++++++++++---------
1 file changed, 194 insertions(+), 190 deletions(-)
diff --git a/src/lib/components/chat/SettingsModal.svelte b/src/lib/components/chat/SettingsModal.svelte
index ee7415dcb7..fb9e558a5e 100644
--- a/src/lib/components/chat/SettingsModal.svelte
+++ b/src/lib/components/chat/SettingsModal.svelte
@@ -611,188 +611,190 @@
{#if filteredPersonalSettings.length > 0}
- {#each filteredPersonalSettings as tabId, index (tabId)}
- {#if shouldShowSettingGroup(filteredPersonalSettings, index)}
-
- {settingGroupTitle(tabId)}
-
- {/if}
+
+ {#each filteredPersonalSettings as tabId, index (tabId)}
+ {#if shouldShowSettingGroup(filteredPersonalSettings, index)}
+
+ {settingGroupTitle(tabId)}
+
+ {/if}
- {#if tabId === 'general'}
-
- {:else if tabId === 'interface'}
-
- {:else if tabId === 'notifications'}
-
- {:else if tabId === 'shortcuts'}
-
- {:else if tabId === 'connections'}
- {#if $user?.role === 'admin' || ($user?.role === 'user' && $config?.features?.enable_direct_connections)}
+ {#if tabId === 'general'}
- {/if}
- {:else if tabId === 'tools'}
- {#if $user?.role === 'admin' || ($user?.role === 'user' && $user?.permissions?.features?.direct_tool_servers)}
+ {:else if tabId === 'interface'}
+ {:else if tabId === 'notifications'}
+
+ {:else if tabId === 'shortcuts'}
+
+ {:else if tabId === 'connections'}
+ {#if $user?.role === 'admin' || ($user?.role === 'user' && $config?.features?.enable_direct_connections)}
+
+ {/if}
+ {:else if tabId === 'tools'}
+ {#if $user?.role === 'admin' || ($user?.role === 'user' && $user?.permissions?.features?.direct_tool_servers)}
+
+ {/if}
+ {:else if tabId === 'personalization'}
+
+ {:else if tabId === 'audio'}
+
+ {:else if tabId === 'data_controls'}
+
+ {:else if tabId === 'usage'}
+
+ {:else if tabId === 'archived_chats'}
+
+ {:else if tabId === 'account'}
+
+ {:else if tabId === 'about'}
+
{/if}
- {:else if tabId === 'personalization'}
-
- {:else if tabId === 'audio'}
-
- {:else if tabId === 'data_controls'}
-
- {:else if tabId === 'usage'}
-
- {:else if tabId === 'archived_chats'}
-
- {:else if tabId === 'account'}
-
- {:else if tabId === 'about'}
-
- {/if}
- {/each}
+ {/each}
+
{/if}
{#if $user?.role === 'admin' && filteredAdminSettings.length > 0}
@@ -803,29 +805,31 @@
{$i18n.t('Admin')}
- {#each filteredAdminSettings as tabId, index (tabId)}
- {#if shouldShowSettingGroup(filteredAdminSettings, index)}
-
+ {#each filteredAdminSettings as tabId, index (tabId)}
+ {#if shouldShowSettingGroup(filteredAdminSettings, index)}
+
+ {settingGroupTitle(tabId)}
+
+ {/if}
- {@const tab = adminSettings.find((setting) => setting.id === tabId)}
- {#if tab}
-
- {/if}
- {/each}
+ {@const tab = adminSettings.find((setting) => setting.id === tabId)}
+ {#if tab}
+
+ {/if}
+ {/each}
+
{/if}
{#if filteredSettings.length === 0}