2.6 KiB
2.6 KiB
MODIFIED Requirements
Requirement: Modal/footer exposes minimal icon-based share actions
The system SHALL provide visible, accessible icon-only share actions for article permalinks on supported providers and SHALL verify interaction correctness with browser automation.
Scenario: Supported share providers
- WHEN share controls are rendered
- THEN icons for
X,WhatsApp, andLinkedInare displayed - AND activating an icon opens provider share flow with the article permalink
Scenario: Light-theme icon visibility
- WHEN the site is in light mode
- THEN share icons remain visibly distinguishable with accessible contrast
- AND icon controls remain keyboard focusable
Scenario: Copy-link share action
- WHEN a user activates the copy-to-clipboard share control
- THEN the article permalink is written to clipboard
- AND action succeeds without navigating away
Scenario: Share controls preserve state accessibility
- WHEN interactive-state tests run across supported themes
- THEN default, hover, focus-visible, and active states remain perceivable
- AND accessible labels remain present for icon-only controls
Requirement: Footer supports env-driven GitHub and contact links
The system SHALL conditionally render GitHub and contact-email links from environment-backed configuration and keep their interactions stable across pointer and keyboard use.
Scenario: Config present
- WHEN GitHub URL and contact email are configured
- THEN footer renders both links as interactive controls
Scenario: Config absent
- WHEN either value is missing
- THEN corresponding footer control is hidden without breaking layout
Scenario: Contact link visible when configured
- WHEN
CONTACT_EMAILis present in frontend config payload - THEN footer shows the contact email affordance
- AND hover microcopy behavior remains enabled
Requirement: Contact affordance provides randomized safe microcopy
The contact link SHALL present randomized, policy-safe helper messages to encourage feedback, including keyboard-triggered visibility for accessibility.
Scenario: Randomized helper tooltip
- WHEN user hovers or nears the contact affordance
- THEN a tooltip-style helper message is shown from a predefined safe message pool
- AND message language avoids profanity/offensive/racist/sexist/misogynistic content
Scenario: Keyboard-triggered helper tooltip
- WHEN a keyboard user focuses the contact email affordance
- THEN helper tooltip content becomes visible and readable
- AND tooltip dismisses cleanly on blur without trapping focus