Prompt: Multi Step Wizard Form with Validation and Summary (FPC007)
Model: Groq-Gemma2-9b | Date: 07/16/2025 | Page Title: Event Registration Wizard
Prompt Description
Create a complex multi-step wizard form for event registration. The wizard should have at least 3 steps, client-side validation at each step, a progress indicator, and a final summary/confirmation step.
**Wizard Steps & Content:**
1. **Step 1: Personal Information (`data-testid='wizard-step-1'`)**
* Fields: Full Name (required), Email (required, valid email), Phone Number.
* 'Next' button to proceed.
2. **Step 2: Event Preferences (`data-testid='wizard-step-2'`)**
* Fields: Ticket Type (select dropdown: Standard, VIP), Number of Tickets (input number, min 1), Dietary Restrictions (textarea).
* 'Previous' and 'Next' buttons.
3. **Step 3: Payment Details (Structure Only - `data-testid='wizard-step-3'`)**
* Placeholder fields for Card Number, Expiry Date, CVV. (No actual payment processing).
* 'Previous' and 'Next' buttons.
4. **Step 4: Review & Confirm (`data-testid='wizard-step-4'`)**
* Display a summary of all information entered in previous steps.
* 'Previous' button and a 'Confirm Registration' button (`data-testid='confirm-registration-btn'`).
5. **Success Message:** After confirming, hide the wizard and show a success message (`data-testid='registration-success-msg'`).
**Core Features:**
* **Progress Indicator:** Visually show current step and total steps (e.g., 'Step 1 of 4'). Identifiable as `data-testid='wizard-progress-indicator'`.
* **Navigation:** Users must be able to navigate between steps using 'Next'/'Previous' buttons.
* **Client-Side Validation:** Each step's 'Next' button should trigger validation for its fields. If invalid, display clear error messages next to fields (e.g., in a `div` with `data-testid='error-fieldName'`) and prevent progression.
* **State Management:** Data entered in each step should persist when navigating back and forth.
**Technical & Accessibility Requirements:**
* Semantic HTML. The wizard itself could be a large `<form>` or a series of fieldsets within a form.
* ARIA: Use `aria-current='step'` on the current step in the progress indicator. Manage focus appropriately when navigating steps (e.g., focus first field of new step).
* Responsive design for all steps and form elements.
* All form elements MUST have associated labels. Error messages should be programmatically linked to inputs using `aria-describedby`.
* Styling: Tailwind CSS. Custom CSS/JS for visual styling of progress bar, step transitions (optional animation), and dynamic error message display.
**Testing Identifiers:**
* Wizard container: `data-testid='event-wizard-form'`
* Step 1 container: `data-testid='wizard-step-1'` (and similar for other steps)
* Progress Indicator: `data-testid='wizard-progress-indicator'`
* Full Name Input: `data-testid='input-fullName'`
* Email Input: `data-testid='input-email'`
* Error for Full Name: `data-testid='error-fullName'`
* Confirm Registration Button: `data-testid='confirm-registration-btn'`
* Success Message: `data-testid='registration-success-msg'`
Key Links & Info
Analysis Timestamp: 07/16/2025 17:46:04
Scores for this Prompt
Technical Quality
81.0 / 110.0
(73.64%)
Prompt Adherence
10.0 / 21.0
(47.62%)
Overall Weighted
55.42 %
Technical Quality Breakdown
HTML Structure & Semantics (5.0 / 10.0)
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| HTML Lang | PASS |
PASS
|
1.0 / 1.0 | desktop |
| Page Title | PASS |
PASS
|
1.0 / 1.0 | desktop |
| Main Tag | FAIL |
No visible <main>.
|
0.0 / 1.0 | desktop |
| Nav Tag | WARN |
No visible <nav>.
|
0.0 / 1.0 | desktop |
| Footer Tag | WARN |
No visible <footer>.
|
0.0 / 1.0 | desktop |
| H1 Count | FAIL |
No visible headings.
|
0.0 / 1.0 | desktop |
| Heading Order Logic | FAIL |
No visible headings.
|
0.0 / 1.0 | desktop |
| Image Alts | INFO |
No visible images (INFO).
|
1.0 / 1.0 | desktop |
| Form Labels | INFO |
No relevant form inputs (INFO).
{
"unlabeled_count": 0
}
|
2.0 / 2.0 | desktop |
CSS Quality (2.0 / 5.0)
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| CSS Variables | WARN |
No :root CSS variables.
|
0.0 / 2.0 | desktop |
| Modern Layout Body/Main | INFO |
Flex/Grid not on body/main.
|
0.0 / 1.0 | desktop |
| Inline Styles | PASS |
Minimal inline styles.
|
1.0 / 1.0 | desktop |
| !important Usage | PASS |
No !important in <style> tags.
|
1.0 / 1.0 | desktop |
JavaScript Health (5.0 / 5.0)
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| JS Console Errors | PASS |
No significant JS errors.
|
5.0 / 5.0 | desktop |
Accessibility (Axe-core) (28.0 / 40.0)
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| Axe Violations | WARN |
3 Axe violations (Crit:0,Ser:0,Mod:3,Min:0). Report: axe_report_FPC007_Multi_Step_Wizard_Form_with_Validation_and_Summary_desktop.json
[
{
"help": "Page must have one main landmark",
"id": "landmark-one-main",
"impact": "moderate"
},
{
"help": "Page must contain a level-one heading",
"id": "page-has-heading-one",
"impact": "moderate"
},
{
"help": "All page content must be contained by landmarks",
"id": "region",
"impact": "moderate"
}
]
|
14.0 / 20.0 | desktop |
| Axe Violations | WARN |
3 Axe violations (Crit:0,Ser:0,Mod:3,Min:0). Report: axe_report_FPC007_Multi_Step_Wizard_Form_with_Validation_and_Summary_mobile.json
[
{
"help": "Page must have one main landmark",
"id": "landmark-one-main",
"impact": "moderate"
},
{
"help": "Page must contain a level-one heading",
"id": "page-has-heading-one",
"impact": "moderate"
},
{
"help": "All page content must be contained by landmarks",
"id": "region",
"impact": "moderate"
}
]
|
14.0 / 20.0 | mobile |
Rendered Color & Contrast (25.0 / 30.0)
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| Contrast Suboptimal (AAA) | INFO |
AAA WARN 4.83 for 'Step' in <span class='text-gray-500 mr-2'>
{
"ratio": 4.834490081424352
}
|
0.0 / 0.0 | desktop |
| Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for '1' in <span class='text-blue-500 font-bold'>
{
"bg_eff": "rgb(255, 255, 255)",
"fg": "rgb(59, 130, 246)",
"ratio": 3.6779011537825332,
"text": "1"
}
|
0.0 / 0.0 | desktop |
| Contrast Suboptimal (AAA) | INFO |
AAA WARN 4.83 for 'of 4' in <span class='text-gray-500 ml-2'>
{
"ratio": 4.834490081424352
}
|
0.0 / 0.0 | desktop |
| Contrast Check Result | FAIL |
1 WCAG AA failures on 3 instances.
|
12.5 / 15.0 | desktop |
| Contrast Suboptimal (AAA) | INFO |
AAA WARN 4.83 for 'Step' in <span class='text-gray-500 mr-2'>
{
"ratio": 4.834490081424352
}
|
0.0 / 0.0 | mobile |
| Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for '1' in <span class='text-blue-500 font-bold'>
{
"bg_eff": "rgb(255, 255, 255)",
"fg": "rgb(59, 130, 246)",
"ratio": 3.6779011537825332,
"text": "1"
}
|
0.0 / 0.0 | mobile |
| Contrast Suboptimal (AAA) | INFO |
AAA WARN 4.83 for 'of 4' in <span class='text-gray-500 ml-2'>
{
"ratio": 4.834490081424352
}
|
0.0 / 0.0 | mobile |
| Contrast Check Result | FAIL |
1 WCAG AA failures on 3 instances.
|
12.5 / 15.0 | mobile |
Responsiveness (Viewport & Scroll) (16.0 / 20.0)
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| Viewport Meta Tag | PASS |
Configured correctly for responsiveness.
|
4.0 / 4.0 | desktop |
| Horizontal Scrollbar | PASS |
No horizontal scrollbar detected.
|
6.0 / 6.0 | desktop |
| Viewport Meta Tag | INFO |
Already scored for this prompt.
|
0.0 / 0.0 | mobile |
| Horizontal Scrollbar | PASS |
No horizontal scrollbar detected.
|
6.0 / 6.0 | mobile |
Prompt Adherence Breakdown
| Check | Status | Message & Data | Points | Viewport |
|---|---|---|---|---|
| Wizard Form Container | PASS |
Element 'form[data-testid='event-wizard-form']' present and visible.
Selector:
form[data-testid='event-wizard-form'] |
1.0 / 1.0 | desktop |
| Step 1 Visible Initially | FAIL |
Element '[data-testid='wizard-step-1']' present but NOT visible.
Selector:
[data-testid='wizard-step-1'] |
0.0 / 1.0 | desktop |
| Progress Indicator | PASS |
Element '[data-testid='wizard-progress-indicator']' present and visible.
Selector:
[data-testid='wizard-progress-indicator'] |
2.0 / 2.0 | desktop |
| Full Name Input | FAIL |
Element 'input[data-testid='input-fullName']' present but NOT visible.
Selector:
input[data-testid='input-fullName'] |
0.0 / 1.0 | desktop |
| Email Input | FAIL |
Element 'input[data-testid='input-email']' present but NOT visible.
Selector:
input[data-testid='input-email'] |
0.0 / 1.0 | desktop |
| Step 1 Validation (Empty Name) | PASS |
All interaction steps/outcomes verified.
|
4.0 / 4.0 | desktop |
| Navigate to Step 2 and Back | FAIL |
One or more interaction steps/outcomes failed.
Interaction Log: [ "--- Executing Step: Fill Step 1 ---", " [FAIL] Trigger config missing." ] |
0.0 / 5.0 | desktop |
| Progress Indicator Updates (aria-current) | FAIL |
Custom script evaluation result: False (expected true).
Script Eval: False
|
0.0 / 3.0 | desktop |
| Form Inputs Have Labels | PASS |
Custom script evaluation result: True (expected true).
Script Eval: True
|
3.0 / 3.0 | desktop |
| Wizard Form Container | PASS |
(Points already awarded) Element 'form[data-testid='event-wizard-form']' present and visible.
Selector:
form[data-testid='event-wizard-form'] |
0.0 / 1.0 | mobile |
| Step 1 Visible Initially | FAIL |
Element '[data-testid='wizard-step-1']' present but NOT visible.
Selector:
[data-testid='wizard-step-1'] |
0.0 / 1.0 | mobile |
| Progress Indicator | PASS |
(Points already awarded) Element '[data-testid='wizard-progress-indicator']' present and visible.
Selector:
[data-testid='wizard-progress-indicator'] |
0.0 / 2.0 | mobile |
| Full Name Input | FAIL |
Element 'input[data-testid='input-fullName']' present but NOT visible.
Selector:
input[data-testid='input-fullName'] |
0.0 / 1.0 | mobile |
| Email Input | FAIL |
Element 'input[data-testid='input-email']' present but NOT visible.
Selector:
input[data-testid='input-email'] |
0.0 / 1.0 | mobile |
| Step 1 Validation (Empty Name) | PASS |
(Points already awarded) All interaction steps/outcomes verified.
|
0.0 / 4.0 | mobile |
| Navigate to Step 2 and Back | FAIL |
One or more interaction steps/outcomes failed.
Interaction Log: [ "--- Executing Step: Fill Step 1 ---", " [FAIL] Trigger config missing." ] |
0.0 / 5.0 | mobile |
| Progress Indicator Updates (aria-current) | FAIL |
Custom script evaluation result: False (expected true).
Script Eval: False
|
0.0 / 3.0 | mobile |
| Form Inputs Have Labels | PASS |
(Points already awarded) Custom script evaluation result: True (expected true).
Script Eval: True
|
0.0 / 3.0 | mobile |