Page MenuHomePhabricator

[Reading List] Conditionally add ReadingList icon to sticky header in Vector 2022
Closed, ResolvedPublic5 Estimated Story Points

Description

As part of the Reading List experiment, we want to make the "save article" functionality accessible while someone scrolls down an article, but we want to avoid people confusing it with the watchlist (star) icon. Therefore, we want to add the "save article" icon to the sticky header, but only if the user has zero edits.

User story

As a logged-in reader, I want the ability to save articles when I scroll down the page.

Design requirements

Add design requirements or link to design files.


Requirements

Desktop web with sticky header. The sticky header must display the correct icon based on Reading List feature flag and the user’s edit count:

Acceptance criteria

  • When the Reading list feature is enabled the reading list icon (bookmark) appears in the sticky header instead of the watchstar
  • When the Reading list feature is disabled, the watchlist icon is in the sticky header (otherwise that would be a regression).

BDD

Feature: Correct sticky header icon for Reading List experiment

  Scenario: Reading List enabled 
    Given I am logged in 
    And the Reading List feature is enabled
    When I scroll down an article so the sticky header appears
    Then the Reading List (bookmark) icon is visible in the sticky header

  Scenario: Reading List feature disabled
    Given I am logged in
    And the Reading List feature is disabled
    When I scroll down an article so the sticky header appears
    Then the Watchlist (star) icon is visible in the sticky header

Test Steps

Test Case 1: Reading List enabled,

  1. Log in with a user account.
  2. Ensure the Reading List feature flag is enabled.
  3. Scroll down an article until the sticky header is shown.
  4. AC1: The Reading List (bookmark) icon is present in the sticky header (element exists by selector, correct icon class).

Test Case 3: Reading List feature disabled

  1. Log in with a user account.
  2. Ensure the Reading List feature flag is disabled.
  3. Scroll down an article until the sticky header is shown.
  4. AC2: The Watchlist (star) icon is present in the sticky header (element exists by selector, correct icon class).

QA Results - Beta

ACStatusDetails
1T401376#11117703
2T401376#11117703

QA Results - Prod

ACStatusDetails
1T401376#11153822
2T401376#11153822

This task was created by Version 1.0.0 of the Reader Experience team task template using phabulous.

Event Timeline

Jdrewniak renamed this task from [Reading Lists] Conditionally add ReadingList icon to sticky header in Vector 2022 to [Reading List] Conditionally add ReadingList icon to sticky header in Vector 2022.Aug 7 2025, 10:27 AM
Jdrewniak triaged this task as High priority.
Jdrewniak moved this task from Incoming to Needs refinement on the Reader Experience Team board.
Jdrewniak set the point value for this task to 5.Aug 7 2025, 4:53 PM

@bwang basically the sticky header should follow the logic in T394562: Hide the watchstar and watchlist when the reading list beta feature is enabled. I think we should be able to do this in Vector by making it aware of the fact the watchstar might be missing.

@bwang anything I can help with on this? I think it would be sufficient to change our logic for "watch" / "unwatch" to also apply to bookmarking for now.

Change #1180634 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/extensions/ReadingLists@master] Generalize reading list bookmark progressive enhancement to work for sticky header

https://gerrit.wikimedia.org/r/1180634

Change #1180635 had a related patch set uploaded (by Bernard Wang; author: Bernard Wang):

[mediawiki/skins/Vector@master] Add reading list support to stickyheader

https://gerrit.wikimedia.org/r/1180635

Change #1180634 merged by jenkins-bot:

[mediawiki/extensions/ReadingLists@master] Generalize reading list bookmark progressive enhancement to work for sticky header

https://gerrit.wikimedia.org/r/1180634

Change #1180635 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Add reading list support to stickyheader

https://gerrit.wikimedia.org/r/1180635

Edtadros subscribed.

Test Result - Beta

Status: ✅ PASS
Environment: beta
OS: macOS Sequoia 15.6
Browser: Chrome Canary (latest as of test date)
Device: MS
Emulated Device: NA

Test Case 1: Reading List enabled

  1. Log in with a user account that has zero edits.
  2. Ensure the Reading List feature flag is enabled.
  3. Scroll down an article until the sticky header is shown.
  4. AC1: The Reading List (bookmark) icon is present in the sticky header (element exists by selector, correct icon class).

screenshot 63.png (1×1 px, 690 KB)

Test Case 3: Reading List feature disabled

  1. Log in with a user account.
  2. Ensure the Reading List feature flag is disabled.
  3. Scroll down an article until the sticky header is shown.
  4. AC2: The Watchlist (star) icon is present in the sticky header (element exists by selector, correct icon class).

screenshot 65.png (679×1 px, 375 KB)

screenshot 66.png (670×1 px, 399 KB)

Hi @Edtadros sorry the A/C were outdated and changed mid-sprint. I've updated them and believe from your tests they are both passes.

Edtadros updated the task description. (Show Details)

I updated everything on my end and documented the pass.

Test Result - Prod

Status: ✅ PASS
Environment: testwiki
OS: macOS Sequoia 15.6
Browser: Chrome Canary (latest as of test date)
Device: MS
Emulated Device: NA

Test Case 1: Reading List enabled

  1. Log in with a user account.
  2. Ensure the Reading List feature flag is enabled.
  3. Scroll down an article until the sticky header is shown.
  4. AC1: The Reading List (bookmark) icon is present in the sticky header (element exists by selector, correct icon class).

screenshot 112.png (818×1 px, 433 KB)

Test Case 3: Reading List feature disabled

  1. Log in with a user account.
  2. Ensure the Reading List feature flag is disabled.
  3. Scroll down an article until the sticky header is shown.
  4. AC2: The Watchlist (star) icon is present in the sticky header (element exists by selector, correct icon class).

screenshot 113.png (921×1 px, 470 KB)