Skip to content

feat: let Show Toolbar Labels show or hide the names of the tabs too #128 - #142

Merged
rathlinus merged 1 commit into
bulwarkmail:mainfrom
wmcparla:feat/tab-bar-labels-setting-128
Nov 15, 2026
Merged

rathlinus merged 1 commit into
bulwarkmail:mainfrom
wmcparla:feat/tab-bar-labels-setting-128

Conversation

@wmcparla

Copy link
Copy Markdown
Contributor

Summary

Settings > Appearance > Show Toolbar Labels now also shows or hides the names under the tab icons (Mail, Calendar, Contacts, Files, Settings), as #128 asks. Until now it only reached the buttons of the message view.

With the names off:

  • the icons are centred in the room the names leave, in the bottom bar and in the side rail of a split layout, which gets narrower;
  • on Android each tab keeps a name for TalkBack, the Mail tab with its unread count ("19, Mail"), as it is read with the names on. iOS names the tabs itself either way ("Mail, tab, 1 of 5").

The switch's description now says "Display text labels next to toolbar and navigation icons." in every locale. The translations are machine-made.

Two things that follow from using the existing setting: an organisation policy that locks showToolbarLabels now decides the tab names too, and the accessibility presets that turn the labels on bring the tab names back.

Changes

  • App.tsx: tabBarShowLabel follows showToolbarLabels; icon-only tabs are centred and, on Android, named.
  • src/components/settings/AppearanceSettings.tsx, locales/rn/*.json: the description, in all 29 locales.
  • docs/parity/08-settings-push-i18n-ui.md: where the setting is used.
  • src/components/__tests__/tab-bar-labels-wiring.test.ts (new).

Related issues

Closes #128

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactor / code quality improvement
  • Chore / dependency update / CI change

Checklist

  • I have read the Contributing Guide
  • My code follows the project's code style and conventions
  • npx tsc --noEmit, npx vitest run and npm run i18n:check are clean (this repo has no lint or build script)
  • I have tested my changes locally
  • I have added or updated documentation if needed
  • I have updated translations (one changed string, all locales, machine-made)
  • I have included screenshots or a screen recording for UI changes

How it was tested

Release builds of this branch, signed in to a test account on a self-hosted Stalwart 1.1.0, with the switch turned off in Settings > Appearance:

  • iPhone 17 Pro simulator (iOS 26.5): the names go; the tabs still switch.
  • iPad Pro 11-inch simulator, landscape and portrait: the rail shows icons only and gets narrower; the mail list and reading pane take the room.
  • Android 16 phone emulator: the names are there with the switch on and go with it off; the view hierarchy gives the icon-only tabs the names "19, Mail", "Calendar", "Contacts", "Files" and "Settings".

Not run on a device: TalkBack and VoiceOver themselves (the names were read from the view hierarchy), an Android tablet, a tab a policy hides or a server lacks, and a right-to-left layout.

Screenshots

The tab bar on the iPhone simulator:

🤖 Generated with Claude Code

@wmcparla
wmcparla marked this pull request as ready for review November 14, 2026 20:43
@rathlinus
rathlinus merged commit 19e353d into bulwarkmail:main Nov 15, 2026
1 check passed
@rathlinus

Copy link
Copy Markdown
Member

Thanks, merged. I added the new description for Greek, Nynorsk and Vietnamese, which came to main after you branched.

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.

[Feature]: make appearance > show toolbar labels also control the text shown at the bottom of the screen

2 participants