Skip to content

Show the message bar above the tab bar and label its close button - #106

Merged
dadachi merged 1 commit into
mainfrom
fix/ios-organization-notices
Oct 16, 2026
Merged

dadachi merged 1 commit into
mainfrom
fix/ios-organization-notices

Conversation

@dadachi

@dadachi dadachi commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Ports one fix from MyTurnTag iOS, found on 2026-10-16 on a physical iPhone. The views here are the same. This template has no organizations UI, so MyTurnTag's other fixes (switch-notice rules in MessageBus, personal-organization alert, invitation adapter) don't apply here.

Message bar over the tab bar; close button

  • MainView overlaid the message bar on the whole screen, so with the tabs showing it covered the tab bar and blocked tab taps until it was closed. With the tabs showing, each tab now shows the bar in its own overlay, above the tab bar. MainView keeps it for screens without a tab bar (MainContent.hasTabBar).
  • The tab's .accessibility(label:) moved before that overlay. Applied after it, it relabeled the message and its close button with the tab's name (seen on the device in MyTurnTag).
  • The close button has an explicit label, new Strings.close "Close" (Japanese 閉じる in Localizable.xcstrings), and a 32 pt target (Spacing.lg) around the 16 pt symbol.

Tests

  • SnackbarViewTest uses the hosting-window accessibility walk, moved from ValidationMessageTest into the shared AccessibilityElements test helper, which keeps accessibility on until the last parallel caller ends. The 32 pt test failed with the old view. The label test passes either way, because the symbol's automatic label is "Close".
  • MainContentTest.contentInAppTabViewHasATabBar failed with hasTabBar broken.

Checks

  • make lint: 0 violations, 0 files need formatting
  • Full test suite on a physical iPhone: 444 tests passed (1 known issue that was already there), including LocalizationTest
  • Layout verified on the device in MyTurnTag, which has the same views; not run in this app

🤖 Generated with Claude Code

https://claude.ai/code/session_01YDK5huvuRECyVrsQEdTN9q

MainView overlaid the message bar on the whole screen, so with the tabs
showing it covered the tab bar and blocked tab taps until closed (found on
an iPhone in an app built from the same views). With the tabs showing, each
tab now shows the bar in its own overlay, above the tab bar; MainView still
shows it for the screens without a tab bar (MainContent.hasTabBar). The
tab's accessibility label moved before that overlay, since after it it
replaced the message's labels.

The close button gets an explicit "Close" label (new Strings.close,
Japanese 閉じる) and a 32 pt target around the 16 pt symbol. The
hosting-window accessibility walk from ValidationMessageTest moved to a
shared test helper (AccessibilityElements), which keeps accessibility on
until the last parallel caller ends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDK5huvuRECyVrsQEdTN9q
@dadachi
dadachi merged commit 85c7101 into main Oct 16, 2026
2 checks passed
@dadachi
dadachi deleted the fix/ios-organization-notices branch October 16, 2026 01:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant