Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
- VoiceOver announces the active tab title when you switch between window tabs. (#1490)
- Opening a query tab no longer pulls keyboard focus away from the sidebar or another control; the editor takes focus only when nothing else holds it. VoiceOver now labels the SQL editor and the Clear and Format buttons. (#1490)
- The connection form opens with the Name field focused, Return or the Down arrow in the welcome search moves to the connection list, and focus returns to the list after a sheet closes, so you can set up a connection without the mouse. (#1490)
Expand Down
8 changes: 7 additions & 1 deletion TablePro/Views/RightSidebar/EditableFieldView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Expose NULL states in the accessibility value

When the inspected cell is actually NULL, RightSidebarView builds this binding as field.originalValue ?? "", while the visible editor shows NULL via the placeholder/sentinel paths. This new modifier therefore gives VoiceOver an empty value for NULL cells (and similarly for multi-row “Multiple values”), so the accessibility fix still omits the state users need to hear. Derive the spoken value from originalValue/hasMultipleValues/pending state instead of the raw binding string.

Useful? React with 👍 / 👎.

}

@ViewBuilder
private func editorContent(for kind: FieldEditorKind) -> some View {
switch kind {
case .json:
JsonEditorView(context: context, onExpand: onExpand, onPopOut: onPopOut)
Expand Down
Loading