From 262d00ef47d5492e776b3ed8622cab40fc4eba5c Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sat, 30 May 2026 14:00:22 +0700 Subject: [PATCH] fix(datagrid): label cell-inspector field editors for VoiceOver (#1490) --- CHANGELOG.md | 1 + TablePro/Views/RightSidebar/EditableFieldView.swift | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a74cc19e..22a0aee75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- VoiceOver now reads the column name and current value for each field editor in the cell inspector. (#1490) - Escape now dismisses search-based sheets and popovers (database switcher, quick switcher, column and connection pickers). Pressing Escape clears the search text first; a second Escape closes the sheet. (#1490) - Running `EXPLAIN` or `EXPLAIN ANALYZE` typed in the editor now opens the plan viewer instead of squashing the plan into one truncated grid cell. (#1480) - Filtering the data grid keeps you on the keyboard. Applying or clearing a filter returns focus to the grid so you can keep moving through cells, Return applies the filter, and Escape closes the filter panel and returns to the grid. (#1490) diff --git a/TablePro/Views/RightSidebar/EditableFieldView.swift b/TablePro/Views/RightSidebar/EditableFieldView.swift index 8f0d36da6..72e12e174 100644 --- a/TablePro/Views/RightSidebar/EditableFieldView.swift +++ b/TablePro/Views/RightSidebar/EditableFieldView.swift @@ -120,8 +120,14 @@ internal struct FieldDetailView: View { // MARK: - Editor Dispatch - @ViewBuilder private func resolvedEditor(for kind: FieldEditorKind) -> some View { + editorContent(for: kind) + .accessibilityLabel(context.columnName) + .accessibilityValue(context.value.wrappedValue) + } + + @ViewBuilder + private func editorContent(for kind: FieldEditorKind) -> some View { switch kind { case .json: JsonEditorView(context: context, onExpand: onExpand, onPopOut: onPopOut)