Add interactive onboarding tour
Description
Add an interactive onboarding tour that introduces first-time users to the main functionality and navigation of practica11y.
The tour should guide users through the application by highlighting relevant UI elements and displaying short contextual explanations. The currently focused element should be visually emphasized while the rest of the interface is dimmed.
The goal is to make it easier for new users to understand how practica11y works without requiring them to read separate documentation first.
Proposed behaviour
On the first visit, users are presented with the option to start a short guided tour.
The tour could introduce the following areas:
-
Welcome
- Briefly explain the purpose of practica11y.
- Explain that the application contains interactive accessibility challenges.
-
Navigation
- Highlight the main navigation.
- Explain how users can move between the different areas/challenges.
-
Challenge overview
- Highlight the challenge list/overview.
- Explain what the different challenges represent.
-
Challenge details
- Highlight the main challenge content.
- Explain where the accessibility issue is demonstrated.
-
Interaction
- Highlight the relevant interactive elements.
- Explain what the user is expected to investigate or interact with.
-
Accessibility information
- Point out where users can find additional information or hints about the accessibility issue.
-
Completion
- Explain how to finish a challenge and move on to the next one.
UX requirements
- The tour should be skippable at any time.
- Users should be able to navigate back and forth between steps.
- The currently explained element should receive a clear visual focus/spotlight.
- The explanatory tooltip should be positioned close to the highlighted element.
- The tour should work with keyboard navigation.
- Focus should be managed correctly while the tour is active.
- The tour must not introduce new accessibility issues itself.
- The tour should not be shown automatically on every visit.
- Users should have a way to restart the tour later, e.g. through a "Start tour" / "Show introduction" action.
Accessibility considerations
Since practica11y is specifically focused on accessibility, the onboarding component should itself follow accessibility best practices.
In particular:
- Use appropriate semantics for the tour/dialog.
- Ensure keyboard users can operate the complete tour.
- Manage focus when opening, navigating and closing the tour.
- Provide an accessible name and description for each step.
- Do not rely on colour alone to indicate the highlighted element.
- Ensure sufficient contrast for the overlay and tooltip.
- Allow users to exit the tour using the
Escape key.
- Respect reduced-motion preferences where animations are used.
- Ensure screen-reader users receive the same essential information as visual users.
Technical considerations
The implementation could either use a small custom component or an existing onboarding-tour library (ideally Angular specific maintained lib).
The important requirement is that the implementation remains accessible and does not make the application dependent on mouse interaction.
A typical implementation would consist of:
Tour / OnboardingTour component
- reusable
TourStep definition
- spotlight/overlay
- tooltip/popover
- keyboard and focus management
- persistent state indicating whether the user has already completed/skipped the tour
Acceptance criteria
Open questions
- Should the tour start automatically or should users explicitly opt in?
- Which parts of the application should be covered in the first version?
- Should there be one short general tour or separate tours for different areas?
- Should completing the tour be persisted locally?
- Should the tour be available from the application's help/settings area?
Add interactive onboarding tour
Description
Add an interactive onboarding tour that introduces first-time users to the main functionality and navigation of practica11y.
The tour should guide users through the application by highlighting relevant UI elements and displaying short contextual explanations. The currently focused element should be visually emphasized while the rest of the interface is dimmed.
The goal is to make it easier for new users to understand how practica11y works without requiring them to read separate documentation first.
Proposed behaviour
On the first visit, users are presented with the option to start a short guided tour.
The tour could introduce the following areas:
Welcome
Navigation
Challenge overview
Challenge details
Interaction
Accessibility information
Completion
UX requirements
Accessibility considerations
Since practica11y is specifically focused on accessibility, the onboarding component should itself follow accessibility best practices.
In particular:
Escapekey.Technical considerations
The implementation could either use a small custom component or an existing onboarding-tour library (ideally Angular specific maintained lib).
The important requirement is that the implementation remains accessible and does not make the application dependent on mouse interaction.
A typical implementation would consist of:
Tour/OnboardingTourcomponentTourStepdefinitionAcceptance criteria
prefers-reduced-motion.Open questions