Page MenuHomePhabricator

[Epic] [WE 3.1.1] More dynamic tabbed browsing (Tabs) on iOS
Open, MediumPublic

Description

20-day experiment - Measuring Oct 29 to Nov 18, 2025

Background

Until this year, the iOS app has not supported tabbed browsing. Our V1 of Tabbed browsing releasing in June 2025 focuses on the core functionality (T384758). We believe that if we further improve a core feature like tabbed browsing, readers will be even more likely to spend time in the App day after day, increasing retention.

Our hypothesis is 3.1.1 of the annual plan, If we A/B test an improved version of the Tabbed browsing feature, we’ll see a 5% increase in multi-day usage among Tabs users

How will we know we were successful

Key Results

  • KR 1.1 5% increase in multi-day usage of the tabs feature among logged-out Tabs users in Groups B and C compared to Control, Group A.
  • KR 1.2 1% increase in overall app retention among logged-out users users in Groups B and C compared to Control, Group A.

Guardrails

  • GR 2.1 No more than 5% decrease in “new tab” events from the tabs overview (Compare groups B & C against Group A)
    • New tab sessions = users who open a new tab from the Tabs overview using the "+" button, or from opening a recommendation in "Did you know" or "Because you read" in the tabs overview
  • GR 2.2 No more than 15% of unique users turn off the article recommendations using the overflow menu

Curiosities

  • CR 3.1 How many people take screenshots of the Tabs overview?
  • CR 3.2 What tab experience do users prefer (B or C)? (survey satisfaction for each group, qualitative feedback)
  • CR 3.3 What article content experience (Main page, Did You Know, Because you read Recommendations) receives the most engagement broken down by experiment group? (Which one receives the most clicks, and new tabs opened)
    • For group B, which resulted in the most engagement/article views? (Main page, Did you Know, because you read)
    • For group C, which got the most most engagement/article views? (Main page, Did you Know, because you read)
  • CR 3.4 Which experience (B or C) leads to the most article engagement? (What is the average # of new tabs opened per unique user for each group?)
Must Haves

Create A/B/C test

  • T398878 Set up more dynamic tabs A/B/C test
  • T398885 Create new “New tab” view controller.
  • T398888 Create new tab experience that has main page tab on first launch (Group B)
  • T398890 Create new tab experience that has empty state on first launch (Group C)
  • T398883 Create tab overflow menu
  • T404796 Allow users to hide and show recommendations
    • Compatible with Dynamic Type and Voiceover
    • Compatible with iPad
  • T404795 Create bottom module that shows Did You Know or Because You Read content
  • T404658 Code cleanup from first attempt at more dynamic tabs
  • T398882 Tabs overflow menu
  • T398881 Close all tabs flow
  • T405428 Update survey
  • T405537 Highlight active tab
  • Instrumentation T398895
Nice to Haves (priority order)
  • T392651 Switch to tabs that are already open from search & external links
  • T396157 Cleanup from V1
  • T398880 Long-press on tabs in overview
  • T392654 Custom transition between tabs and overview
  • T392650 Animate tabs icon when tab is opened in background
  • T398891 Open new tabs next to current tab
  • Add more Settings for Tabs: Let users control
    • How external links open
    • Automatic closing behavior
  • Support gestures to move between tabs (based on user testing)
Done
  • T398884 Add “Did you know” to wikifeeds
Out of scope
  • Save all tabs to a reading list
  • Selecting individual tabs and closing them
User Stories
  • As someone who opens articles frequently from a browser, I want a quick way to close all of my open tabs on the Wikipedia App so that I can keep them organized.
  • As a student wanting to open a new tab to keep researching, I want to see suggestions for what I might be looking for, to help me save time.
Target Quant Regions and Languages

Users with an App primary language of English, Arabic, or German
Users with a device country of Germany, or within ESEAP or MENA regions

Designs

Figma (iPhone - variations B and C): https://www.figma.com/design/5gHmEo8IIFxlPfYM6bppzz/iOS---%3E-More-Dynamic-Tabs?node-id=1418-5420&t=lWe5qKi82ULeaqCp-4
Figma (key screens iPad): https://www.figma.com/design/5gHmEo8IIFxlPfYM6bppzz/iOS---%3E-More-Dynamic-Tabs?node-id=1484-5235&t=lWe5qKi82ULeaqCp-4

Video walkthough
Variation B: https://drive.google.com/file/d/1mPExyXzmDlrw-Fpc9ewSpCl5KR5G5GZp/view?usp=drive_link
Variation C: https://drive.google.com/file/d/18_-AdtM_KjSR50WWPOkNNkOOfevKmGq_/view?usp=drive_link

Core Screens

multiple-tabs-view-suggestions.png (852×394 px, 163 KB)
multiple-tabs-view-suggestions-options.png (852×393 px, 181 KB)
multiple-tabs-view.png (852×394 px, 89 KB)
multiple-tabs-view-no-tabs.png (852×394 px, 29 KB)

Testplan

https://docs.google.com/document/d/11InuKeHaFqXmUWDP54uu56d_xrBuaNnzkz97pCvJYHU/edit?usp=sharing

References

Project page: https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/iOS/Tabbed_Browsing_(Tabs)

Related Objects

StatusSubtypeAssignedTask
OpenFeatureNone
ResolvedHNordeenWMF
OpenNone
ResolvedMazevedo
DeclinedGOlson-WMF
ResolvedGOlson-WMF
DeclinedNone
ResolvedGOlson-WMF
ResolvedGOlson-WMF
ResolvedDbrant
ResolvedMazevedo
ResolvedGOlson-WMF
ResolvedGOlson-WMF
ResolvedTsevener
ResolvedSNowick_WMF
DeclinedMazevedo
ResolvedGOlson-WMF
ResolvedSNowick_WMF
ResolvedMazevedo
ResolvedMazevedo
ResolvedGOlson-WMF
ResolvedGOlson-WMF
ResolvedGOlson-WMF
DeclinedSChekfa-WMF
OpenNone
DeclinedNone
ResolvedMazevedo
InvalidNone
ResolvedGOlson-WMF
ResolvedHNordeenWMF

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@ABorbaWMF is out sick, I'm taking a brief pass at what test should be automated as part of this work - to provide a critical user journey coverage for this specific epic.

Proposed UI automated end to end smoke tests (prior to creating a task for each):

  1. As an English logged-out user, I open the Wikipedia app, browse to an article, open a second article in a new tab, and close out all tabs. This results in all tabs being closed.

This covers a broad swathe of functionality inclusive of tab creation/closing and browsing to an article in-app, as well as adding and closing a tab. So this is what I would consider an end to end test.

Asserts would be against specifics at each major point (user is not logged in, app opens, new article loads, second article loads in second tab and can be selected, closing all tabs works).

  1. As a familiar user, when I create a new tab I am given personalized suggestions for reading based on my previous reading.

This would require test data be maintained and created that establishes the concept of a "familiar user" and ultimately automation that walks to creating a new tab and validates that suggestions equal a known output.

  1. As an unfamiliar user, when I create a new tab I am given generalized suggestions for reading that includes the "Did you know?" suggestions.

This is similar to above but for the concept of an "unfamiliar user" and they get shown the "Did you know?" section on searching.

  1. On opening the Wikipedia app to the home page, I can see the "Did you know?" section

A tooltip for announcing the new feature would not necessarily be a candidate for E2E UI test automation, but may be able to be covered by a smaller-scale component test that loads the component, hovers, and validates tooltip appears. Or possibly lower level through unit tests around the view model or controller.

Additional automation opportunities:

Nice to haves will be scoped at a later date
Accessibility (voiceover) test automation (of 1)

Recommended test tooling: XCUITest due to compatibility with all functionality and ease of integration with dev workflows (can be run from XCode).

@SLong-WMF & @ABorbaWMF: This epic is ready for review by QTE and an assessment for automated logging testing.

@SLong-WMF & @ABorbaWMF: This epic is ready for review by QTE and an assessment for automated logging.

See my assessment of a scope for automated tests above. Given that some of these are likely to roll out only if they see success, I'm trying to propose lightweight UI automation at this point with further build-out of things that are more fully adopted.

I'm making the assumption that the code will have coverage for unit testing and will let Anthony speak to a more broad suite of manual tests to ensure total functionality (for example, I didn't put in anything about validating analytics events fire appropriately, as that may be testable at a lower level than UI or manually as a once-off).

This is the first time we're doing this - are we missing anything?

I'm not sure what you mean by automated logging though?

@SLong-WMF Apologies! I think I had my draft in place to notify you and only just realised you'd been speedy and posted between me tagging you and the notice! I'll review and will ask the iOS engineers to take a gander as well.

HNordeenWMF renamed this task from [Epic] [WE 3.1.1] More dynamic tabs on iOS to [Epic] [WE 3.1.1] More dynamic tabbed browsing on iOS.Oct 1 2025, 6:53 PM
HNordeenWMF renamed this task from [Epic] [WE 3.1.1] More dynamic tabbed browsing on iOS to [Epic] [WE 3.1.1] More dynamic tabbed browsing (Tabs) on iOS.