Prompt: Interactive Recipe Page (FPC002)
Model: Groq-Llama4-Scout | Date: 05/17/2025 | Page Title: Chocolate Lava Cakes
Prompt Description
Create a feature-rich, responsive webpage for a recipe (e.g., 'Chocolate Lava Cakes'). The page should be highly interactive and user-friendly. **Page Structure & Content:** 1. **Recipe Header:** * Recipe Name (H1, identifiable as `data-testid='recipe-title'`). * A captivating image of the dish (ensure proper `alt` text). * Brief description, prep time, cook time, servings (e.g., 'Serves 4'). 2. **Ingredients Section:** * A list of ingredients. Each ingredient should be a list item (`<li>`). * **Interactivity:** Allow users to check off ingredients as they gather them. Each `<li>` should contain a checkbox. Checking it should visually indicate completion (e.g., strikethrough text) and this state should be clearly communicated (e.g., `aria-checked` or a similar pattern for custom checkboxes). * The ingredients list container should be identifiable as `data-testid='ingredients-list'`. 3. **Instructions Section:** * Numbered steps for the recipe. * **Interactivity:** 'Timer' feature. For steps mentioning a time (e.g., 'Bake for 12-15 minutes'), include a small button next to the step (identifiable as `data-testid='timer-btn-stepX'`) that, when clicked, starts a countdown timer displayed on the page (identifiable as `data-testid='recipe-timer-display'`). The timer should visually update and provide an alert/notification when finished. Multiple timers should not interfere if started. 4. **Nutrition Information (Optional but good for TQ):** * A simple table displaying basic nutrition facts (calories, protein, fat, carbs). 5. **User Reviews/Comments (Structure Only):** * A section placeholder for user reviews, including a form to submit a new review (Name, Rating (1-5 stars - make these interactive, perhaps SVGs or radio buttons styled as stars), Comment). * The review submission form should be `data-testid='review-form'`. **Technical & Accessibility Requirements:** * Full semantic HTML structure (header, main, article/section, aside (for nutrition?), footer). * Responsive design ensuring readability and usability on all devices. The ingredients list and instructions must be easy to follow on mobile. * All interactive elements (checkboxes, timer buttons, star ratings) MUST be fully keyboard accessible and provide clear visual feedback and ARIA states. * The timer functionality requires JavaScript for countdown logic and notifications. * If using Tailwind, supplement with custom CSS/JS for the interactive elements like the timer display, ingredient strikethrough, and star rating to ensure they meet the described UX and A11y. * The page should be well-organized and visually appealing. **Testing Identifiers:** * Recipe Title: `data-testid='recipe-title'` * Ingredients List: `data-testid='ingredients-list'` * Timer Button (example for step 1): `data-testid='timer-btn-step1'` * Timer Display Area: `data-testid='recipe-timer-display'` * Review Submission Form: `data-testid='review-form'`
Key Links & Info
Analysis Timestamp: 05/17/2025 11:46:10
Scores for this Prompt
Technical Quality
108.1 / 190.0
(56.89%)
Prompt Adherence
24.0 / 26.0
(92.31%)
Overall Weighted
85.23 %
Technical Quality Breakdown
HTML Structure & Semantics (7.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 | PASS |
PASS
|
1.0 / 1.0 | desktop |
Nav Tag | WARN |
No visible <nav>.
|
0.0 / 1.0 | desktop |
Footer Tag | PASS |
PASS
|
1.0 / 1.0 | desktop |
H1 Count | PASS |
PASS
|
1.0 / 1.0 | desktop |
Heading Order Logic | PASS |
PASS
|
1.0 / 1.0 | desktop |
Image Alts | PASS |
PASS
|
1.0 / 1.0 | desktop |
Form Labels | FAIL |
4 inputs unlabeled.
{ "unlabeled_count": 4 } |
0.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 (0.0 / 5.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
JS Console Errors | FAIL |
2 JS error(s).
[ "JS ERROR: file:///C:/Users/Smirk/Documents/Programming/Studio/UIGEN-Benchmark/v4/all_code_outputs/fullpage_challenge/Groq-Llama4-Scout/chocolate-lava-cakes.jpg - Failed to load resource: net::ERR_FILE_NOT_FOUND", "JS ERROR: file:///C:/Users/Smirk/Documents/Programming/Studio/UIGEN-Benchmark/v4/all_code_outputs/fullpage_challenge/Groq-Llama4-Scout/FPC002_Interactive_Recipe_Page.html 140:98 Uncaught SyntaxError: Invalid or" ] |
0.0 / 5.0 | desktop |
Accessibility (Axe-core) (10.0 / 40.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Axe Violations | FAIL |
2 Axe violations (Crit:1,Ser:1,Mod:0,Min:0). Report: axe_report_FPC002_Interactive_Recipe_Page_desktop.json
[ { "help": "Elements must have sufficient color contrast", "id": "color-contrast", "impact": "serious" }, { "help": "Form elements must have labels", "id": "label", "impact": "critical" } ] |
5.0 / 20.0 | desktop |
Axe Violations | FAIL |
2 Axe violations (Crit:1,Ser:1,Mod:0,Min:0). Report: axe_report_FPC002_Interactive_Recipe_Page_mobile.json
[ { "help": "Elements must have sufficient color contrast", "id": "color-contrast", "impact": "serious" }, { "help": "Form elements must have labels", "id": "label", "impact": "critical" } ] |
5.0 / 20.0 | mobile |
Rendered Color & Contrast (0.0 / 30.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step1' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step2' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step3' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step4' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Submit Review' in <button class='bg-blue-500 hover:bg-blue-700 ...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Submit Review" } |
0.0 / 0.0 | desktop |
Contrast Check Result | FAIL |
10 WCAG AA failures on 37 instances.
|
0.0 / 15.0 | desktop |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step1' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step2' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step3' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Start Timer' in <button data-testid='timer-btn-step4' class='ml-2 bg-blue-500 hover:bg-blue...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Start Timer" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 1.61 for '★' in <label>
{ "bg_eff": "rgb(255, 255, 255)", "fg": "rgb(204, 204, 204)", "ratio": 1.6059285649300714, "text": "\u2605" } |
0.0 / 0.0 | mobile |
Contrast Failure (AA) | FAIL |
AA FAIL 3.68 for 'Submit Review' in <button class='bg-blue-500 hover:bg-blue-700 ...'>
{ "bg_eff": "rgb(59, 130, 246)", "fg": "rgb(255, 255, 255)", "ratio": 3.6779011537825332, "text": "Submit Review" } |
0.0 / 0.0 | mobile |
Contrast Check Result | FAIL |
10 WCAG AA failures on 37 instances.
|
0.0 / 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 |
Performance (Lighthouse) (37.0 / 40.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | PASS |
94/100
|
18.8 / 20.0 | desktop |
Lighthouse Score | PASS |
91/100
|
18.2 / 20.0 | mobile |
Accessibility (Lighthouse) (17.4 / 20.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | WARN |
87/100
|
8.7 / 10.0 | desktop |
Lighthouse Score | WARN |
87/100
|
8.7 / 10.0 | mobile |
Best Practices (Lighthouse) (9.6 / 10.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | PASS |
96/100
|
4.8 / 5.0 | desktop |
Lighthouse Score | PASS |
96/100
|
4.8 / 5.0 | mobile |
SEO (Lighthouse) (9.1 / 10.0)
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Lighthouse Score | PASS |
91/100
|
4.5 / 5.0 | desktop |
Lighthouse Score | PASS |
91/100
|
4.5 / 5.0 | mobile |
Prompt Adherence Breakdown
Check | Status | Message & Data | Points | Viewport |
---|---|---|---|---|
Recipe Title | PASS |
Element 'h1[data-testid='recipe-title']' present and visible.
Selector:
h1[data-testid='recipe-title'] |
2.0 / 2.0 | desktop |
Ingredients List | PASS |
Element '[data-testid='ingredients-list']' present and visible.
Selector:
[data-testid='ingredients-list'] |
2.0 / 2.0 | desktop |
Ingredients Items (min 3) | PASS |
Count is 4 (Actual: 4, Expected: >= 3).
|
2.0 / 2.0 | desktop |
Example Timer Button | PASS |
Element '[data-testid^='timer-btn-step']' present and visible.
Selector:
[data-testid^='timer-btn-step'] |
2.0 / 2.0 | desktop |
Timer Display Area | FAIL |
Element '[data-testid='recipe-timer-display']' present but NOT visible.
Selector:
[data-testid='recipe-timer-display'] |
0.0 / 2.0 | desktop |
Review Form | PASS |
Element 'form[data-testid='review-form']' present and visible.
Selector:
form[data-testid='review-form'] |
2.0 / 2.0 | desktop |
Ingredient Check Off | PASS |
All interaction steps/outcomes verified.
|
5.0 / 5.0 | desktop |
Timer Starts and Updates (Visual check of display) | PASS |
All interaction steps/outcomes verified.
|
6.0 / 6.0 | desktop |
Star Rating is Interactive (basic check) | PASS |
Custom script evaluation result: True (expected true).
Script Eval: True
|
3.0 / 3.0 | desktop |
Recipe Title | PASS |
(Points already awarded) Element 'h1[data-testid='recipe-title']' present and visible.
Selector:
h1[data-testid='recipe-title'] |
0.0 / 2.0 | mobile |
Ingredients List | PASS |
(Points already awarded) Element '[data-testid='ingredients-list']' present and visible.
Selector:
[data-testid='ingredients-list'] |
0.0 / 2.0 | mobile |
Ingredients Items (min 3) | PASS |
(Points already awarded) Count is 4 (Actual: 4, Expected: >= 3).
|
0.0 / 2.0 | mobile |
Example Timer Button | PASS |
(Points already awarded) Element '[data-testid^='timer-btn-step']' present and visible.
Selector:
[data-testid^='timer-btn-step'] |
0.0 / 2.0 | mobile |
Timer Display Area | FAIL |
Element '[data-testid='recipe-timer-display']' present but NOT visible.
Selector:
[data-testid='recipe-timer-display'] |
0.0 / 2.0 | mobile |
Review Form | PASS |
(Points already awarded) Element 'form[data-testid='review-form']' present and visible.
Selector:
form[data-testid='review-form'] |
0.0 / 2.0 | mobile |
Ingredient Check Off | PASS |
(Points already awarded) All interaction steps/outcomes verified.
|
0.0 / 5.0 | mobile |
Timer Starts and Updates (Visual check of display) | PASS |
(Points already awarded) All interaction steps/outcomes verified.
|
0.0 / 6.0 | mobile |
Star Rating is Interactive (basic check) | PASS |
(Points already awarded) Custom script evaluation result: True (expected true).
Script Eval: True
|
0.0 / 3.0 | mobile |