diff options
| author | Nolan Darilek <[email protected]> | 2026-01-22 05:10:53 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-22 05:10:53 -0600 |
| commit | 3435327bc074a7ba8c3fe8939c97de54bbdefd65 (patch) | |
| tree | d906b07c16e8e90808e5f78b72f72e8737f53eeb /packages/app/src/components/session | |
| parent | 8a043edfd5a504421301cc183eedf4ecdb4c57b0 (diff) | |
| download | opencode-3435327bc074a7ba8c3fe8939c97de54bbdefd65.tar.gz opencode-3435327bc074a7ba8c3fe8939c97de54bbdefd65.zip | |
fix(app): session screen accessibility improvements (#9907)
Diffstat (limited to 'packages/app/src/components/session')
3 files changed, 30 insertions, 28 deletions
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 98b9635c5..f2ffa3ec5 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -135,6 +135,7 @@ export function SessionHeader() { type="button" class="hidden md:flex w-[320px] p-1 pl-1.5 items-center gap-2 justify-between rounded-md border border-border-weak-base bg-surface-raised-base transition-colors cursor-default hover:bg-surface-raised-base-hover focus:bg-surface-raised-base-hover active:bg-surface-raised-base-active" onClick={() => command.trigger("file.open")} + aria-label="Search files" > <div class="flex min-w-0 flex-1 items-center gap-2 overflow-visible"> <Icon name="magnifying-glass" size="normal" class="icon-base shrink-0" /> @@ -184,6 +185,10 @@ export function SessionHeader() { variant="ghost" class="group/review-toggle size-6 p-0" onClick={() => view().reviewPanel.toggle()} + aria-label="Toggle review panel" + aria-expanded={view().reviewPanel.opened()} + aria-controls="review-panel" + tabIndex={showReview() ? 0 : -1} > <div class="relative flex items-center justify-center size-4 [&>*]:absolute [&>*]:inset-0"> <Icon @@ -214,6 +219,9 @@ export function SessionHeader() { variant="ghost" class="group/terminal-toggle size-6 p-0" onClick={() => view().terminal.toggle()} + aria-label="Toggle terminal" + aria-expanded={view().terminal.opened()} + aria-controls="terminal-panel" > <div class="relative flex items-center justify-center size-4 [&>*]:absolute [&>*]:inset-0"> <Icon @@ -235,32 +243,23 @@ export function SessionHeader() { </Button> </TooltipKeybind> </div> - <div - class="flex items-center" - classList={{ - "opacity-0 pointer-events-none": !showShare(), - }} - aria-hidden={!showShare()} - > - <Popover - title={language.t("session.share.popover.title")} - description={ - shareUrl() - ? language.t("session.share.popover.description.shared") - : language.t("session.share.popover.description.unshared") - } - trigger={ - <Tooltip class="shrink-0" value={language.t("command.session.share")}> - <Button - variant="secondary" - classList={{ "rounded-r-none": shareUrl() !== undefined }} - style={{ scale: 1 }} - > - {language.t("session.share.action.share")} - </Button> - </Tooltip> - } - > + <Show when={showShare()}> + <div class="flex items-center"> + <Popover + title={language.t("session.share.popover.title")} + description={ + shareUrl() + ? language.t("session.share.popover.description.shared") + : language.t("session.share.popover.description.unshared") + } + triggerAs={Button} + triggerProps={{ + variant: "secondary", + classList: { "rounded-r-none": shareUrl() !== undefined }, + style: { scale: 1 }, + }} + trigger={language.t("session.share.action.share")} + > <div class="flex flex-col gap-2"> <Show when={shareUrl()} @@ -322,10 +321,12 @@ export function SessionHeader() { class="rounded-l-none" onClick={copyLink} disabled={state.unshare} + aria-label="Copy share link" /> </Tooltip> </Show> - </div> + </div> + </Show> </div> </Portal> )} diff --git a/packages/app/src/components/session/session-sortable-tab.tsx b/packages/app/src/components/session/session-sortable-tab.tsx index a4a434b05..6f2c044fc 100644 --- a/packages/app/src/components/session/session-sortable-tab.tsx +++ b/packages/app/src/components/session/session-sortable-tab.tsx @@ -37,7 +37,7 @@ export function SortableTab(props: { tab: string; onTabClose: (tab: string) => v value={props.tab} closeButton={ <Tooltip value={language.t("common.closeTab")} placement="bottom"> - <IconButton icon="close" variant="ghost" onClick={() => props.onTabClose(props.tab)} /> + <IconButton icon="close" variant="ghost" onClick={() => props.onTabClose(props.tab)} aria-label="Close tab" /> </Tooltip> } hideCloseButton diff --git a/packages/app/src/components/session/session-sortable-terminal-tab.tsx b/packages/app/src/components/session/session-sortable-terminal-tab.tsx index a3aaf6061..3ef395c9a 100644 --- a/packages/app/src/components/session/session-sortable-terminal-tab.tsx +++ b/packages/app/src/components/session/session-sortable-terminal-tab.tsx @@ -139,6 +139,7 @@ export function SortableTerminalTab(props: { terminal: LocalPTY; onClose?: () => e.stopPropagation() close() }} + aria-label="Close terminal" /> } > |
