All pages
Ecommerce
https://pxp.dev/services/ecommerce
, opens in a new tab
Scores
Findings
Mobile
Desktop
1
2
3
Boxes mark elements that failed a check. Hover or focus an element
in the lists below to highlight it here.
Accessibility — 3 failing checks
1
Finding 1:
Links do not have a discernible name
Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
serious
weight 7
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
div.col-auto > ul.nav > li.nav-item > a.nav-link
<a href="#" class="nav-link">
Fix all of the following:
Element is in tab order and does not have accessible text
Fix any of the following:
Element does not have text that is visible to screen readers
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
Element has no title attribute
2
Finding 2:
Heading elements are not in a sequentially-descending order
Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. Learn more about heading order.
moderate
weight 3
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
3
Finding 3:
Document does not have a main landmark.
One main landmark helps screen reader users navigate a web page. Learn more about landmarks.
moderate
weight 3
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
Agentic Browsing — 1 failing check
4
Finding 4:
Accessibility tree is not well-formed
A well-formed accessibility tree helps AI agents to navigate and interact with the page.
unrated
weight 1
0 elements
How to fix
, opens in a new tab
Lab metrics
Measured in a simulated mobile environment. These are
readings, not checks — treat them as context for the performance
score rather than defects to close.
2.4 s
First Contentful Paint
19.2 s
Largest Contentful Paint
60 ms
Total Blocking Time
0
Cumulative Layout Shift
9.5 s
Speed Index
Performance — 13 opportunities
Avoid enormous network payloads
Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.
Total size was 3,486 KiB
score 50
How to fix
, opens in a new tab
Image elements do not have explicit `width` and `height`
Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
score 50
How to fix
, opens in a new tab
Improve image delivery
Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size
Est savings of 2,386 KiB
score 0
How to fix
, opens in a new tab
LCP request discovery
Optimize LCP by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading
score 0
How to fix
, opens in a new tab
Legacy JavaScript
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling
Est savings of 45 KiB
score 0
How to fix
, opens in a new tab
Minify JavaScript
Minifying JavaScript files can reduce payload sizes and script parse time. Learn how to minify JavaScript.
Est savings of 9 KiB
score 50
How to fix
, opens in a new tab
Network dependency tree
Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
score 0
How to fix
, opens in a new tab
Reduce unused CSS
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.
Est savings of 71 KiB
score 0
How to fix
, opens in a new tab
Reduce unused JavaScript
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
Est savings of 103 KiB
score 0
How to fix
, opens in a new tab
Render-blocking requests
Requests are blocking the page's initial render, which may delay LCP. Deferring or inlining can move these network requests out of the critical path.
Est savings of 910 ms
score 0
How to fix
, opens in a new tab
Time to Interactive
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
19.2 s
score 2
How to fix
, opens in a new tab
Use efficient cache lifetimes
A long cache lifetime can speed up repeat visits to your page. Learn more about caching.
Est savings of 5 KiB
score 50
How to fix
, opens in a new tab
Performance: 12 checks passed, 4 not applicable
Layout shift culprits
Document request latency
Optimize DOM size
Duplicated JavaScript
Font display
Forced reflow
Optimize viewport for mobile
Max Potential First Input Delay
JavaScript execution time
Minimizes main-thread work
Avoid multiple page redirects
Initial server response time was short
INP breakdown (not applicable)
User Timing marks and measures (not applicable)
Avoid non-composited animations (not applicable)
Avoid large layout shifts (not applicable)
Accessibility: 17 checks passed, 46 not applicable
`[aria-*]` attributes match their roles
ARIA attributes are used as specified for the element's role
`[aria-hidden="true"]` is not present on the document `<body>`
Elements use only permitted ARIA attributes
`[aria-*]` attributes have valid values
`[aria-*]` attributes are valid and not misspelled
Buttons have an accessible name
Background and foreground colors have a sufficient contrast ratio
Document has a `<title>` element
`<html>` element has a `[lang]` attribute
`<html>` element has a valid value for its `[lang]` attribute
Image elements have `[alt]` attributes
Links are distinguishable without relying on color.
Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements
`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.
Touch targets have sufficient size and spacing.
`[accesskey]` values are unique (not applicable)
`button`, `link`, and `menuitem` elements have accessible names (not applicable)
Deprecated ARIA roles were not used (not applicable)
Elements with `role="dialog"` or `role="alertdialog"` have accessible names. (not applicable)
`[aria-hidden="true"]` elements do not contain focusable descendents (not applicable)
ARIA input fields have accessible names (not applicable)
ARIA `meter` elements have accessible names (not applicable)
ARIA `progressbar` elements have accessible names (not applicable)
`[role]`s have all required `[aria-*]` attributes (not applicable)
Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children. (not applicable)
`[role]`s are contained by their required parent element (not applicable)
`[role]` values are valid (not applicable)
Elements with the `role=text` attribute do not have focusable descendents. (not applicable)
ARIA toggle fields have accessible names (not applicable)
ARIA `tooltip` elements have accessible names (not applicable)
ARIA `treeitem` elements have accessible names (not applicable)
The page contains a heading, skip link, or landmark region (not applicable)
`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements. (not applicable)
Definition list items are wrapped in `<dl>` elements (not applicable)
ARIA IDs are unique (not applicable)
No form fields have multiple labels (not applicable)
`<frame>` or `<iframe>` elements have a title (not applicable)
`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute. (not applicable)
Input buttons have discernible text. (not applicable)
`<input type="image">` elements have `[alt]` text (not applicable)
Form elements have associated labels (not applicable)
The document does not use `<meta http-equiv="refresh">` (not applicable)
`<object>` elements have alternate text (not applicable)
Select elements have associated label elements. (not applicable)
Skip links are focusable. (not applicable)
No element has a `[tabindex]` value greater than 0 (not applicable)
Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table. (not applicable)
`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe. (not applicable)
`[lang]` attributes have a valid value (not applicable)
`<video>` elements contain a `<track>` element with `[kind="captions"]` (not applicable)
`autocomplete` attributes are used correctly (not applicable)
Elements with `role="none"` or `role="presentation"` do not have conflicts (not applicable)
SVG elements with an `img` role have an accessible text alternative (not applicable)
Tables have different content in the summary attribute and `<caption>`. (not applicable)
All heading elements contain content. (not applicable)
Uses ARIA roles only on compatible elements (not applicable)
Image elements do not have `[alt]` attributes that are redundant text. (not applicable)
Identical links have the same purpose. (not applicable)
Elements with visible text labels have matching accessible names. (not applicable)
Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption. (not applicable)
`<td>` elements in a large `<table>` have one or more table headers. (not applicable)
Best Practices: 13 checks passed, 1 not applicable
Uses HTTPS
Avoids requesting the geolocation permission on page load
Avoids requesting the notification permission on page load
Allows users to paste into input fields
Displays images with correct aspect ratio
Serves images with appropriate resolution
Page has the HTML doctype
Properly defines charset
Avoids deprecated APIs
Avoids third-party cookies
No browser errors logged to the console
Page has valid source maps
No issues in the `Issues` panel in Chrome Devtools
Redirects HTTP traffic to HTTPS (not applicable)
SEO: 9 checks passed, 1 not applicable
Page isn’t blocked from indexing
Document has a `<title>` element
Document has a meta description
Page has successful HTTP status code
Links have descriptive text
Links are crawlable
robots.txt is valid
Image elements have `[alt]` attributes
Document has a valid `hreflang`
Document has a valid `rel=canonical` (not applicable)
Agentic Browsing: 1 check passed, 4 not applicable
Cumulative Layout Shift
WebMCP form coverage (not applicable)
WebMCP tools registered (not applicable)
WebMCP schemas are valid (not applicable)
llms.txt follows recommendations (not applicable)
Scanned August 25, 2026
· Lighthouse 13.4.1
1
2
3
4
Boxes mark elements that failed a check. Hover or focus an element
in the lists below to highlight it here.
Accessibility — 4 failing checks
1
Finding 1:
Background and foreground colors do not have a sufficient contrast ratio.
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
serious
weight 7
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
div#navbarNav > ul.navbar-nav > li.nav-item > a.btn
<a class="btn btn-primary ml-2" href="/get-more-info">
Fix any of the following:
Element has insufficient color contrast of 1.67 (foreground color: #ffffff, background color: #8bd4de, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
2
Finding 2:
Links do not have a discernible name
Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
serious
weight 7
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
div.col-auto > ul.nav > li.nav-item > a.nav-link
<a href="#" class="nav-link">
Fix all of the following:
Element is in tab order and does not have accessible text
Fix any of the following:
Element does not have text that is visible to screen readers
aria-label attribute does not exist or is empty
aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty
Element has no title attribute
3
Finding 3:
Heading elements are not in a sequentially-descending order
Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. Learn more about heading order.
moderate
weight 3
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
4
Finding 4:
Document does not have a main landmark.
One main landmark helps screen reader users navigate a web page. Learn more about landmarks.
moderate
weight 3
1 element
How to fix
, opens in a new tab
Show the 1 element at fault
Agentic Browsing — 1 failing check
5
Finding 5:
Accessibility tree is not well-formed
A well-formed accessibility tree helps AI agents to navigate and interact with the page.
unrated
weight 1
0 elements
How to fix
, opens in a new tab
Lab metrics
Measured in a simulated desktop environment. These are
readings, not checks — treat them as context for the performance
score rather than defects to close.
0.7 s
First Contentful Paint
3.3 s
Largest Contentful Paint
90 ms
Total Blocking Time
0.005
Cumulative Layout Shift
0.9 s
Speed Index
Performance — 14 opportunities
Avoid enormous network payloads
Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.
Total size was 3,486 KiB
score 50
How to fix
, opens in a new tab
Forced reflow
A forced reflow occurs when JavaScript queries geometric properties (such as `offsetWidth`) after styles have been invalidated by a change to the DOM state. This can result in poor performance. Learn more about forced reflows and possible mitigations.
score 0
How to fix
, opens in a new tab
Image elements do not have explicit `width` and `height`
Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
score 50
How to fix
, opens in a new tab
Improve image delivery
Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size
Est savings of 2,300 KiB
score 0
How to fix
, opens in a new tab
LCP request discovery
Optimize LCP by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading
score 0
How to fix
, opens in a new tab
Legacy JavaScript
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling
Est savings of 45 KiB
score 0
How to fix
, opens in a new tab
Minify JavaScript
Minifying JavaScript files can reduce payload sizes and script parse time. Learn how to minify JavaScript.
Est savings of 9 KiB
score 50
How to fix
, opens in a new tab
Network dependency tree
Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
score 0
How to fix
, opens in a new tab
Reduce unused CSS
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.
Est savings of 70 KiB
score 0
How to fix
, opens in a new tab
Reduce unused JavaScript
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
Est savings of 104 KiB
score 0
How to fix
, opens in a new tab
Render-blocking requests
Requests are blocking the page's initial render, which may delay LCP. Deferring or inlining can move these network requests out of the critical path.
Est savings of 230 ms
score 0
How to fix
, opens in a new tab
Time to Interactive
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
3.3 s
score 74
How to fix
, opens in a new tab
Use efficient cache lifetimes
A long cache lifetime can speed up repeat visits to your page. Learn more about caching.
Est savings of 5 KiB
score 50
How to fix
, opens in a new tab
Performance: 9 checks passed, 3 not applicable
Document request latency
Duplicated JavaScript
Font display
Optimize viewport for mobile
Max Potential First Input Delay
JavaScript execution time
Minimizes main-thread work
Avoid multiple page redirects
Initial server response time was short
INP breakdown (not applicable)
User Timing marks and measures (not applicable)
Avoid non-composited animations (not applicable)
Accessibility: 10 checks passed, 51 not applicable
`[aria-hidden="true"]` is not present on the document `<body>`
Document has a `<title>` element
`<html>` element has a `[lang]` attribute
`<html>` element has a valid value for its `[lang]` attribute
Image elements have `[alt]` attributes
Links are distinguishable without relying on color.
Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).
List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements
`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.
Touch targets have sufficient size and spacing.
`[accesskey]` values are unique (not applicable)
`[aria-*]` attributes match their roles (not applicable)
`button`, `link`, and `menuitem` elements have accessible names (not applicable)
ARIA attributes are used as specified for the element's role (not applicable)
Deprecated ARIA roles were not used (not applicable)
Elements with `role="dialog"` or `role="alertdialog"` have accessible names. (not applicable)
`[aria-hidden="true"]` elements do not contain focusable descendents (not applicable)
ARIA input fields have accessible names (not applicable)
ARIA `meter` elements have accessible names (not applicable)
ARIA `progressbar` elements have accessible names (not applicable)
Elements use only permitted ARIA attributes (not applicable)
`[role]`s have all required `[aria-*]` attributes (not applicable)
Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children. (not applicable)
`[role]`s are contained by their required parent element (not applicable)
`[role]` values are valid (not applicable)
Elements with the `role=text` attribute do not have focusable descendents. (not applicable)
ARIA toggle fields have accessible names (not applicable)
ARIA `tooltip` elements have accessible names (not applicable)
ARIA `treeitem` elements have accessible names (not applicable)
`[aria-*]` attributes have valid values (not applicable)
`[aria-*]` attributes are valid and not misspelled (not applicable)
Buttons have an accessible name (not applicable)
The page contains a heading, skip link, or landmark region (not applicable)
`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements. (not applicable)
Definition list items are wrapped in `<dl>` elements (not applicable)
ARIA IDs are unique (not applicable)
No form fields have multiple labels (not applicable)
`<frame>` or `<iframe>` elements have a title (not applicable)
`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute. (not applicable)
Input buttons have discernible text. (not applicable)
`<input type="image">` elements have `[alt]` text (not applicable)
Form elements have associated labels (not applicable)
The document does not use `<meta http-equiv="refresh">` (not applicable)
`<object>` elements have alternate text (not applicable)
Select elements have associated label elements. (not applicable)
Skip links are focusable. (not applicable)
No element has a `[tabindex]` value greater than 0 (not applicable)
Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table. (not applicable)
`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe. (not applicable)
`[lang]` attributes have a valid value (not applicable)
`<video>` elements contain a `<track>` element with `[kind="captions"]` (not applicable)
`autocomplete` attributes are used correctly (not applicable)
Elements with `role="none"` or `role="presentation"` do not have conflicts (not applicable)
SVG elements with an `img` role have an accessible text alternative (not applicable)
Tables have different content in the summary attribute and `<caption>`. (not applicable)
All heading elements contain content. (not applicable)
Uses ARIA roles only on compatible elements (not applicable)
Image elements do not have `[alt]` attributes that are redundant text. (not applicable)
Elements with visible text labels have matching accessible names. (not applicable)
Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption. (not applicable)
`<td>` elements in a large `<table>` have one or more table headers. (not applicable)
Best Practices: 13 checks passed, 1 not applicable
Uses HTTPS
Avoids requesting the geolocation permission on page load
Avoids requesting the notification permission on page load
Allows users to paste into input fields
Displays images with correct aspect ratio
Serves images with appropriate resolution
Page has the HTML doctype
Properly defines charset
Avoids deprecated APIs
Avoids third-party cookies
No browser errors logged to the console
Page has valid source maps
No issues in the `Issues` panel in Chrome Devtools
Redirects HTTP traffic to HTTPS (not applicable)
SEO: 9 checks passed, 1 not applicable
Page isn’t blocked from indexing
Document has a `<title>` element
Document has a meta description
Page has successful HTTP status code
Links have descriptive text
Links are crawlable
robots.txt is valid
Image elements have `[alt]` attributes
Document has a valid `hreflang`
Document has a valid `rel=canonical` (not applicable)
Agentic Browsing: 1 check passed, 4 not applicable
Cumulative Layout Shift
WebMCP form coverage (not applicable)
WebMCP tools registered (not applicable)
WebMCP schemas are valid (not applicable)
llms.txt follows recommendations (not applicable)
Scanned August 25, 2026
· Lighthouse 13.4.1