Page MenuHomePhabricator

[M] For You Feed: Because You Read Module
Closed, ResolvedPublic5 Estimated Story Points

Assigned To
Authored By
JTannerWMF
Mar 11 2026, 1:02 PM
Referenced Files
F83374691: 2026-05-22_01-00-21.png
May 22 2026, 8:07 AM
F83374666: 2026-05-22_01-00-06.png
May 22 2026, 8:07 AM
F83374642: 2026-05-22_00-59-56.png
May 22 2026, 8:07 AM
F83373822: 2026-05-22_00-10-05.mp4
May 22 2026, 8:07 AM
F83374196: 2026-05-22_00-10-05.mp4
May 22 2026, 8:07 AM
F83373449: 2026-05-22_00-18-29.mp4
May 22 2026, 8:07 AM
F83373349: 2026-05-22_00-16-36.mp4
May 22 2026, 8:07 AM
F83373189: 2026-05-21_23-59-01.mp4
May 22 2026, 8:07 AM

Description

Background

The Because You Read module surfaces article recommendations based on the most recent article the user has read using the MoreLike API. It provides 3 article cards in a horizontal scroll. The reason label identifies the article is being triggered based on the users reading history.

Every For You card shares the same persistent chrome: Wikipedia logo (top left), Community tab access, language switcher dropdown (showing user-configured languages + link to language settings; changing language refreshes the module content in the selected language without leaving the module), and notification bell. The bottom navigation bar is always visible.
The three-dot more menu on each card surfaces four options: Save, Share, Hide module, and Customize interests.

Standard card structure: reason label (why the user is seeing this card) → article title → card position indicator (e.g. 2/3) → three-dot more menu → body text excerpt.

User Story

As a Wikipedia reader, after I finish reading an article I want to see related article suggestions based on what I just read, so that I can continue exploring topics that interest me without having to search.

Requirements

  • ✅ The module selects the user's most recently read article (for more than 1 minute)as the basis for recommendations.
  • ✅ [four] recommended article cards are displayed in a horizontal stack.
  • ✅ The reason label on each card reads 'Because you read [Article Title]'.
  • ✅ Each card displays: reason label, recommended article title, card position indicator (e.g. 1/3), three-dot more menu, and a short text excerpt (first paragraph of article).
  • ✅ The article's top image is used as a full-bleed background. If no image exists, a gradient background is shown.
  • ✅ Tapping a card navigates the user to the full recommended article.
  • ✅ If the user has no reading history, this module is hidden from the feed until they've read at least one article.
  • Exclude disambiguation pages and main page.

Design

Figma link →


Derived Requirement

Ensure the For You Feed displays a Continue Reading module that prioritizes the user’s most recently read article after more than 1 minute of reading time and optionally displays up to two most recently saved reading list articles, each containing the appropriate reason label, article title, card position indicator, three-dot more menu, excerpt, and article image or gradient background fallback.

Ensure tapping any Continue Reading or reading list card navigates directly to the associated article, the module displays persistent feed chrome elements including language switching without leaving the module, and the three-dot menu provides Save, Share, Hide module, and Customize interests options.

Ensure the Continue Reading module is hidden when the user has no qualifying reading history and no reading list items, and displays only the Continue Reading card when no reading list articles exist.

Test Steps

Test Case 1: Ensure the first Continue Reading card displays the most recently read article

  1. Log in to Wikipedia with a user account that has recently read multiple articles for longer than 1 minute.
  2. Navigate away from the most recently read article.
  3. Open the For You Feed.
  4. Locate the Continue Reading module.
  5. Verify the first card corresponds to the most recently read article.
  6. ✅❓❌⬜ AC1: The first card always displays the article most recently read for more than 1 minute.

Test Case 2: Ensure the Continue Reading card displays all required metadata

  1. Log in with a user account that has qualifying reading history.
  2. Open the For You Feed.
  3. Locate the first Continue Reading card.
  4. Verify the card displays the “Continue reading” reason label.
  5. Verify the card displays the article title.
  6. Verify the card displays the card position indicator.
  7. Verify the card displays the three-dot more menu.
  8. Verify the card displays a short article excerpt.
  9. ✅❓❌⬜ AC2: The Continue Reading card displays the reason label, article title, card position indicator, three-dot more menu, and short excerpt.

Test Case 3: Ensure reading list cards display when saved articles exist

  1. Log in with a user account containing at least three saved reading list articles.
  2. Open the For You Feed.
  3. Locate the Continue Reading module.
  4. Verify additional cards appear after the Continue Reading card.
  5. Verify no more than two reading list cards are displayed.
  6. Verify the displayed reading list cards correspond to the most recently saved articles.
  7. ✅❓❌⬜ AC3: Up to two reading list cards are displayed using the user’s most recently saved reading list articles.

Test Case 4: Ensure reading list cards display required metadata

  1. Log in with a user account containing saved reading list articles.
  2. Open the For You Feed.
  3. Locate a reading list card within the Continue Reading module.
  4. Verify the card displays the “From your reading list” reason label.
  5. Verify the card displays the article title.
  6. Verify the card displays the card position indicator.
  7. Verify the card displays the three-dot more menu.
  8. Verify the card displays a short excerpt.
  9. ✅❓❌⬜ AC4: Reading list cards display the reason label, article title, card position indicator, three-dot more menu, and short excerpt.

Test Case 5: Ensure article images display as full-bleed card backgrounds

  1. Log in with a user account containing articles with lead images in reading history or reading list entries.
  2. Open the For You Feed.
  3. Locate cards within the Continue Reading module.
  4. Verify cards for articles with images display the article image as a full-bleed background.
  5. ✅❓❌⬜ AC5: Cards with article images display the article image as a full-bleed background.

Test Case 6: Ensure cards without article images display a gradient background

  1. Log in with a user account containing articles without lead images in reading history or reading list entries.
  2. Open the For You Feed.
  3. Locate cards corresponding to articles without images.
  4. Verify the cards display a gradient background instead of an image.
  5. ✅❓❌⬜ AC6: Cards without article images display a gradient background.

Test Case 7: Ensure tapping a Continue Reading card navigates to the associated article

  1. Log in with a user account containing qualifying reading history.
  2. Open the For You Feed.
  3. Tap the Continue Reading card.
  4. Verify the associated article page opens.
  5. ✅❓❌⬜ AC7: Tapping a Continue Reading card navigates the user directly to the associated article.

Test Case 8: Ensure tapping a reading list card navigates to the associated article

  1. Log in with a user account containing saved reading list articles.
  2. Open the For You Feed.
  3. Tap a reading list card within the Continue Reading module.
  4. Verify the associated article page opens.
  5. ✅❓❌⬜ AC8: Tapping a reading list card navigates the user directly to the associated article.

Test Case 9: Ensure the Continue Reading module is hidden when no reading history or reading list items exist

  1. Log in with a new user account that has no qualifying reading history and no saved reading list articles.
  2. Open the For You Feed.
  3. Verify the Continue Reading module does not appear in the feed.
  4. ✅❓❌⬜ AC9: The Continue Reading module is hidden when the user has no reading history and no reading list items.

Test Case 10: Ensure only one card displays when no reading list items exist

  1. Log in with a user account containing qualifying reading history but no reading list items.
  2. Open the For You Feed.
  3. Locate the Continue Reading module.
  4. Verify only one card is displayed.
  5. Verify the displayed card is the Continue Reading card.
  6. ✅❓❌⬜ AC10: The Continue Reading module displays only the Continue Reading card when no reading list items exist.

Test Case 11: Ensure persistent feed chrome displays on all cards

  1. Log in with a user account that can access the For You Feed.
  2. Open the Continue Reading module.
  3. Verify the Wikipedia logo is visible.
  4. Verify Community tab access is visible.
  5. Verify the language switcher dropdown is visible.
  6. Verify the notification bell is visible.
  7. Verify the bottom navigation bar remains visible.
  8. Swipe between cards in the module.
  9. Verify the persistent chrome remains visible across cards.
  10. ✅❓❌⬜ AC11: All Continue Reading module cards display the persistent feed chrome elements.

Test Case 12: Ensure the language switcher refreshes module content without leaving the module

  1. Log in with a user account configured with multiple languages.
  2. Open the Continue Reading module in the For You Feed.
  3. Open the language switcher dropdown.
  4. Select a different configured language.
  5. Verify the module content refreshes in the selected language.
  6. Verify the user remains within the Continue Reading module after switching languages.
  7. ✅❓❌⬜ AC12: Changing the language refreshes module content in the selected language without leaving the module.

Test Case 13: Ensure the three-dot menu displays all required actions

  1. Log in with a user account that can access the Continue Reading module.
  2. Open the For You Feed.
  3. Open the three-dot more menu on a Continue Reading card.
  4. Verify the Save option is displayed.
  5. Verify the Share option is displayed.
  6. Verify the Hide module option is displayed.
  7. Verify the Customize interests option is displayed.
  8. Repeat the verification for a reading list card.
  9. ✅❓❌⬜ AC13: The three-dot more menu displays Save, Share, Hide module, and Customize interests options on all cards.

QA Results - APK

Details

Other Assignee
GMikesell-WMF

Event Timeline

Dbrant renamed this task from For You Feed: Because You Read Module to [S] For You Feed: Because You Read Module.Mar 30 2026, 7:59 PM
HNordeenWMF raised the priority of this task from Low to Medium.Apr 8 2026, 9:56 PM
cooltey renamed this task from [S] For You Feed: Because You Read Module to [M] For You Feed: Because You Read Module.Apr 15 2026, 4:54 PM
cooltey set the point value for this task to 5.

Hi @JTannerWMF and cc @HNordeenWMF

Can we have a separate ticket for creating the three-dot more menu for the "For you" modules, similar to this T418877

Reference: https://www.figma.com/design/VwBaV9KZ7LWfOY2dt1BJyQ/explore-feed-explorations?node-id=4322-101431&t=ogHg5L2G3bK4MDYS-4

@cooltey the 3-dot menu is currently slated to be built as a part of this task T419626: [M] For You Feed: Shared Card Chrome & Navigation. Does that work, or do you prefer it separate

@cooltey the 3-dot menu is currently slated to be built as a part of this task T419626: [M] For You Feed: Shared Card Chrome & Navigation. Does that work, or do you prefer it separate

Hi @HNordeenWMF, thank you that works for me.

HNordeenWMF raised the priority of this task from Medium to High.Apr 24 2026, 9:42 PM

Hi @TLessa-WMF

The implementation is completed. Please download the latest APK from the link below to see it. Thank you!
https://github.com/wikimedia/apps-android-wikipedia/pull/6446

I couldn't QA this because I couldn't see the module. I assume I have to read an article and wait for the next day to see the recommendations. Left some instructions here of things to pay attention to when another designer does this QA: https://www.figma.com/design/VwBaV9KZ7LWfOY2dt1BJyQ/explore-feed-explorations?node-id=5856-3092&t=DIsiF8SY4QclSEo1-1. Placeholder punchlist tab here: https://docs.google.com/spreadsheets/d/1X1HhkL6-w1PnZJnbvE9AF7c56OCL8Ol1u3ngvwoikbY/edit?gid=1705899379#gid=1705899379&range=A5 - @HNordeenWMF could you please ask another designer to do this QA in my absence? Thanks!

Steps to test

  1. Open any article. Once it loads, scroll down a little bit.
  2. Stay in the article for 1 minute.
  3. Go back to the feed, swipe down to refresh the feed.
  4. You should be able to see the module that has "Because you read: "

Please note that if you are testing the app from a fresh install, you will not be able to see the module until the next day. Or, you can change your device time to the next day in order to see it.

Looking good! I am currently seeing 4 recommendations instead of 3, but I'm gong to assume that this is OK as it's what appears in Figma (apologies to @TLessa-WMF if I'm incorrect here)

Similar note here as on T419696

If the user has no reading history, this module is hidden from the feed until they've read at least one article. Exclude disambiguation pages and main page.

P1 fix: If a user has clears their reading history, ideally this module is hidden, immediately or upon reload of the feed. In our current explore feed, it hides on reload.

@cooltey Can you please review AC2, AC3, AC5, AC12? If you have any questions, please let me know, thanks!

Test Result - APK

Status: ✅ PASS / ❌ FAIL
Environment: https://wheresmyapk.toolforge.org/
OS: macOS Tahoe 26.5
Browser: Chrome 148
Device: MBA
Emulated Device: BrowserStack: Google Pixel 10 XL Pro

Test Artifact(s):

Test Steps

Test Case 1: Ensure the first Continue Reading card displays the most recently read article

  1. Log in to Wikipedia with a user account that has recently read multiple articles for longer than 1 minute.
  2. Navigate away from the most recently read article.
  3. Open the For You Feed.
  4. Locate the Continue Reading module.
  5. Verify the first card corresponds to the most recently read article.
  6. ✅ AC1: The first card always displays the article most recently read for more than 1 minute.

Test Case 2: Ensure the Continue Reading card displays all required metadata

  1. Log in with a user account that has qualifying reading history.
  2. Open the For You Feed.
  3. Locate the first Continue Reading card.
  4. Verify the card displays the “Continue reading” reason label.
  5. Verify the card displays the article title.
  6. Verify the card displays the card position indicator.
  7. Verify the card displays the three-dot more menu.
  8. Verify the card displays a short article excerpt.
  9. ❌AC2: The Continue Reading card displays the reason label, article title, card position indicator, three-dot more menu, and short excerpt.

Differences

  • 3 words for short article excerpt compared to figma of the same article
Google Pixel 10 XL ProFigma
--==
2026-05-22_00-32-22.png (573×1,079 px, 654 KB)
2026-05-21_16-46-06.png (410×727 px, 321 KB)

Test Case 3: Ensure reading list cards display when saved articles exist

  1. Log in with a user account containing at least three saved reading list articles.
  2. Open the For You Feed.
  3. Locate the Continue Reading module.
  4. Verify additional cards appear after the Continue Reading card.
  5. Verify no more than two reading list cards are displayed.
  6. Verify the displayed reading list cards correspond to the most recently saved articles.
  7. ❌ AC3: Up to two reading list cards are displayed using the user’s most recently saved reading list articles.

Has more than 2 reading list cards displayed but the most recent saved displays first

Test Case 4: Ensure reading list cards display required metadata

  1. Log in with a user account containing saved reading list articles.
  2. Open the For You Feed.
  3. Locate a reading list card within the Continue Reading module.
  4. Verify the card displays the “From your reading list” reason label.
  5. Verify the card displays the article title.
  6. Verify the card displays the card position indicator.
  7. Verify the card displays the three-dot more menu.
  8. Verify the card displays a short excerpt.
  9. ✅AC4: Reading list cards display the reason label, article title, card position indicator, three-dot more menu, and short excerpt.

}

Test Case 5: Ensure article images display as full-bleed card backgrounds

  1. Log in with a user account containing articles with lead images in reading history or reading list entries.
  2. Open the For You Feed.
  3. Locate cards within the Continue Reading module.
  4. Verify cards for articles with images display the article image as a full-bleed background.
  5. ❌ AC5: Cards with article images display the article image as a full-bleed background.

This article should display an image

2026-05-21_23-51-33.png (571×1,080 px, 336 KB)
2026-05-22_00-45-50.png (642×1,084 px, 357 KB)

Image displays as full-bleed card background and the next time it didn't?

2026-05-21_23-51-41.png (573×1,069 px, 529 KB)
2026-05-21_23-56-40.png (542×1,091 px, 305 KB)

Test Case 6: Ensure cards without article images display a gradient background

  1. Log in with a user account containing articles without lead images in reading history or reading list entries.
  2. Open the For You Feed.
  3. Locate cards corresponding to articles without images.
  4. Verify the cards display a gradient background instead of an image.
  5. ✅ AC6: Cards without article images display a gradient background.
2026-05-22_00-48-44.png (560×1,068 px, 314 KB)
2026-05-22_00-48-23.png (584×1,084 px, 400 KB)

Test Case 7: Ensure tapping a Continue Reading card navigates to the associated article

  1. Log in with a user account containing qualifying reading history.
  2. Open the For You Feed.
  3. Tap the Continue Reading card.
  4. Verify the associated article page opens.
  5. ✅ AC7: Tapping a Continue Reading card navigates the user directly to the associated article.

Test Case 8: Ensure tapping a reading list card navigates to the associated article

  1. Log in with a user account containing saved reading list articles.
  2. Open the For You Feed.
  3. Tap a reading list card within the Continue Reading module.
  4. Verify the associated article page opens.
  5. ✅ AC8: Tapping a reading list card navigates the user directly to the associated article.

Test Case 9: Ensure the Continue Reading module is hidden when no reading history or reading list items exist

  1. Log in with a new user account that has no qualifying reading history and no saved reading list articles.
  2. Open the For You Feed.
  3. Verify the Continue Reading module does not appear in the feed.
  4. ✅ AC9: The Continue Reading module is hidden when the user has no reading history and no reading list items.

Test Case 10: Ensure only one card displays when no reading list items exist

  1. Log in with a user account containing qualifying reading history but no reading list items.
  2. Open the For You Feed.
  3. Locate the Continue Reading module.
  4. Verify only one card is displayed.
  5. Verify the displayed card is the Continue Reading card.
  6. ✅ AC10: The Continue Reading module displays only the Continue Reading card when no reading list items exist.

Test Case 11: Ensure persistent feed chrome displays on all cards

  1. Log in with a user account that can access the For You Feed.
  2. Open the Continue Reading module.
  3. Verify the Wikipedia logo is visible.
  4. Verify Community tab access is visible.
  5. Verify the language switcher dropdown is visible.
  6. Verify the notification bell is visible.
  7. Verify the bottom navigation bar remains visible.
  8. Swipe between cards in the module.
  9. Verify the persistent chrome remains visible across cards.
  10. ✅ AC11: All Continue Reading module cards display the persistent feed chrome elements.

Test Case 12: Ensure the language switcher refreshes module content without leaving the module

  1. Log in with a user account configured with multiple languages.
  2. Open the Continue Reading module in the For You Feed.
  3. Open the language switcher dropdown.
  4. Select a different configured language.
  5. Verify the module content refreshes in the selected language.
  6. Verify the user remains within the Continue Reading module after switching languages.
  7. ❌ AC12: Changing the language refreshes module content in the selected language without leaving the module.

The user does not remain within the Continue Reading module after switching languages.

Test Case 13: Ensure the three-dot menu displays all required actions

  1. Log in with a user account that can access the Continue Reading module.
  2. Open the For You Feed.
  3. Open the three-dot more menu on a Continue Reading card.
  4. Verify the Save option is displayed.
  5. Verify the Share option is displayed.
  6. Verify the Hide module option is displayed.
  7. Verify the Customize interests option is displayed.
  8. Repeat the verification for a reading list card.
  9. ✅ AC13: The three-dot more menu displays Save, Share, Hide module, and Customize interests options on all cards.
2026-05-22_00-59-56.png (607×1,095 px, 645 KB)
2026-05-22_01-00-06.png (557×1,076 px, 653 KB)
2026-05-22_01-00-21.png (596×1,089 px, 295 KB)

@GMikesell-WMF thanks for this extraordinary level of detail.
One quick note:

❌ AC5: Cards with article images display the article image as a full-bleed background.

This is expected: The presentation of these cards is supposed to alternate between three possible variations:

  • Full-bleed image in the background, with title and excerpt at the bottom.
  • Full-bleed image in the background, with title and short description at the bottom.
  • Solid-color background, with article excerpt in a card, with small thumbnail image.

Hi @GMikesell-WMF

❌ AC12: Changing the language refreshes module content in the selected language without leaving the module.

Jus confirmed with the PM about this behavior, and it is expected now. We might have a separate ticket that will be handled in another phase.

ABorbaWMF subscribed.

Looks good on 50588-alpha-2026-05-22
Tested on:
Pixel 6 on Android 16
Pixel 8 on Android 16
OnePlus 8 on Android 13
Galaxy A36 on Android 15

Exclude disambiguation pages and main page.

This requirement was not formatted well in the list (PM issue), so I'm assuming it was not done? @cooltey

We have a task to follow up and exclude non-main space pages from being used and suggested here: T427216

This requirement was not formatted well in the list (PM issue), so I'm assuming it was not done? @cooltey

We exclude the main pages, but not the disambiguation, and yes, we can do that in another ticket.