Tier E1
RN-universal Tabs pilot
ScaffoldedContext-driven tab switcher. Root holds the active value; triggers and contents read it via context. accessibilityRole='tablist' + 'tab' + role='tabpanel' — screen readers announce the relationship between trigger and panel.
Side-by-side: controlled
shadcn (Radix)
Overview
Reports
Settings
1,284 active students · 92% attendance this week.
RN
Overview
Reports
Settings
1,284 active students · 92% attendance this week.
Shared state — both surfaces react to the same active tab.
Defaults + disabled
Day
Week
Month
Year
Week view data — default selection.
Semantics
| Aspect | shadcn | RN | Notes |
|---|---|---|---|
| Root | Radix Root | transparent <View> | Just a provider |
| List | role="tablist" | accessibilityRole="tablist" | Same |
| Trigger | role="tab" | accessibilityRole="tab" | Plus aria-selected on RN Web |
| Content | role="tabpanel" | role="tabpanel" | aria-labelledby trigger id, both ways |
| forceMount | Radix prop | forceMount prop | Mounts inactive content hidden — for animations |