54 lines
2.6 KiB
Markdown
54 lines
2.6 KiB
Markdown
## 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`, and `LinkedIn` are 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_EMAIL` is 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
|