",
+ "nodeLabel": "Üdvözlő grafika"
+ }
+ }
+ ]
+ },
+ {
+ "type": "table",
+ "headings": [
+ {
+ "key": "phase",
+ "valueType": "text",
+ "label": "Phase"
+ },
+ {
+ "key": "percent",
+ "valueType": "text",
+ "label": "% of LCP"
+ },
+ {
+ "key": "timing",
+ "valueType": "ms",
+ "label": "Timing"
+ }
+ ],
+ "items": [
+ {
+ "phase": "TTFB",
+ "timing": 455.8427,
+ "percent": "20%"
+ },
+ {
+ "phase": "Load Delay",
+ "timing": 275.7914175639941,
+ "percent": "12%"
+ },
+ {
+ "phase": "Load Time",
+ "timing": 74.31906857915806,
+ "percent": "3%"
+ },
+ {
+ "phase": "Render Delay",
+ "timing": 1514.552463856848,
+ "percent": "65%"
+ }
+ ]
+ }
+ ]
+ },
+ "guidanceLevel": 1
+ },
+ "lcp-lazy-loaded": {
+ "id": "lcp-lazy-loaded",
+ "title": "Largest Contentful Paint image was not lazily loaded",
+ "description": "Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint. [Learn more about optimal lazy loading](https://web.dev/articles/lcp-lazy-loading).",
+ "score": 1,
+ "scoreDisplayMode": "metricSavings",
+ "metricSavings": {
+ "LCP": 0
+ },
+ "details": {
+ "type": "table",
+ "headings": [
+ {
+ "key": "node",
+ "valueType": "node",
+ "label": "Element"
+ }
+ ],
+ "items": [
+ {
+ "node": {
+ "type": "node",
+ "lhId": "1-17-DIV",
+ "path": "1,HTML,1,BODY,0,DIV,0,DIV,0,DIV",
+ "selector": "body#top > div#splash > div.splash-panel > div.art",
+ "boundingRect": {
+ "top": 333,
+ "bottom": 449,
+ "left": 58,
+ "right": 354,
+ "width": 297,
+ "height": 115
+ },
+ "snippet": "
",
+ "nodeLabel": "Üdvözlő grafika"
+ }
+ }
+ ]
+ },
+ "guidanceLevel": 3
+ },
+ "layout-shift-elements": {
+ "id": "layout-shift-elements",
+ "title": "Avoid large layout shifts",
+ "description": "These DOM elements were most affected by layout shifts. Some layout shifts may not be included in the CLS metric value due to [windowing](https://web.dev/articles/cls#what_is_cls). [Learn how to improve CLS](https://web.dev/articles/optimize-cls)",
+ "score": null,
+ "scoreDisplayMode": "notApplicable",
+ "metricSavings": {
+ "CLS": 0
+ },
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ },
+ "guidanceLevel": 2
+ },
+ "long-tasks": {
+ "id": "long-tasks",
+ "title": "Avoid long main-thread tasks",
+ "description": "Lists the longest tasks on the main thread, useful for identifying worst contributors to input delay. [Learn how to avoid long main-thread tasks](https://web.dev/articles/long-tasks-devtools)",
+ "score": null,
+ "scoreDisplayMode": "informative",
+ "displayValue": "2 long tasks found",
+ "metricSavings": {
+ "TBT": 0
+ },
+ "details": {
+ "type": "table",
+ "headings": [
+ {
+ "key": "url",
+ "valueType": "url",
+ "label": "URL"
+ },
+ {
+ "key": "startTime",
+ "valueType": "ms",
+ "granularity": 1,
+ "label": "Start Time"
+ },
+ {
+ "key": "duration",
+ "valueType": "ms",
+ "granularity": 1,
+ "label": "Duration"
+ }
+ ],
+ "items": [
+ {
+ "url": "http://localhost:36941/scifi-ui/index.html",
+ "duration": 75,
+ "startTime": 661.8427
+ },
+ {
+ "url": "http://localhost:36941/scifi-ui/index.html",
+ "duration": 50,
+ "startTime": 611.8427
+ }
+ ],
+ "sortedBy": [
+ "duration"
+ ],
+ "skipSumming": [
+ "startTime"
+ ],
+ "debugData": {
+ "type": "debugdata",
+ "urls": [
+ "http://localhost:36941/scifi-ui/index.html"
+ ],
+ "tasks": [
+ {
+ "urlIndex": 0,
+ "startTime": 661.8,
+ "duration": 75,
+ "other": 75,
+ "paintCompositeRender": 0,
+ "styleLayout": 0
+ },
+ {
+ "urlIndex": 0,
+ "startTime": 611.8,
+ "duration": 50,
+ "other": 50,
+ "paintCompositeRender": 0,
+ "scriptEvaluation": 0,
+ "styleLayout": 0
+ }
+ ]
+ }
+ },
+ "guidanceLevel": 1
+ },
+ "no-unload-listeners": {
+ "id": "no-unload-listeners",
+ "title": "Avoids `unload` event listeners",
+ "description": "The `unload` event does not fire reliably and listening for it can prevent browser optimizations like the Back-Forward Cache. Use `pagehide` or `visibilitychange` events instead. [Learn more about unload event listeners](https://web.dev/articles/bfcache#never_use_the_unload_event)",
+ "score": 1,
+ "scoreDisplayMode": "binary"
+ },
+ "non-composited-animations": {
+ "id": "non-composited-animations",
+ "title": "Avoid non-composited animations",
+ "description": "Animations which are not composited can be janky and increase CLS. [Learn how to avoid non-composited animations](https://developer.chrome.com/docs/lighthouse/performance/non-composited-animations/)",
+ "score": null,
+ "scoreDisplayMode": "informative",
+ "displayValue": "5 animated elements found",
+ "metricSavings": {
+ "CLS": 0
+ },
+ "details": {
+ "type": "table",
+ "headings": [
+ {
+ "key": "node",
+ "valueType": "node",
+ "subItemsHeading": {
+ "key": "failureReason",
+ "valueType": "text"
+ },
+ "label": "Element"
+ },
+ {
+ "key": null,
+ "valueType": "text",
+ "subItemsHeading": {
+ "key": "animation",
+ "valueType": "text"
+ },
+ "label": "Name"
+ }
+ ],
+ "items": [
+ {
+ "node": {
+ "type": "node",
+ "lhId": "page-1-::after",
+ "path": "1,HTML,1,BODY,0,DIV,0,::after",
+ "selector": "body#top > div#splash > ::after",
+ "boundingRect": {
+ "top": 0,
+ "bottom": 823,
+ "left": 0,
+ "right": 412,
+ "width": 412,
+ "height": 823
+ },
+ "snippet": "<::after>",
+ "nodeLabel": "body#top > div#splash > ::after"
+ },
+ "subItems": {
+ "type": "subitems",
+ "items": [
+ {
+ "failureReason": "Unsupported CSS Property: background-position-y",
+ "animation": "scanlines"
+ }
+ ]
+ }
+ },
+ {
+ "node": {
+ "type": "node",
+ "lhId": "page-2-DIV",
+ "path": "1,HTML,1,BODY,0,DIV",
+ "selector": "body#top > div#splash",
+ "boundingRect": {
+ "top": 0,
+ "bottom": 823,
+ "left": 0,
+ "right": 412,
+ "width": 412,
+ "height": 823
+ },
+ "snippet": "
",
+ "nodeLabel": "Üdvözlő animáció"
+ },
+ "subItems": {
+ "type": "subitems",
+ "items": [
+ {
+ "failureReason": "Unsupported CSS Property: visibility",
+ "animation": "visibility"
+ },
+ {
+ "failureReason": "Effect has unsupported timing parameters",
+ "animation": "visibility"
+ }
+ ]
+ }
+ },
+ {
+ "node": {
+ "type": "node",
+ "lhId": "page-4-circle",
+ "path": "1,HTML,1,BODY,5,MAIN,11,DIV,0,DIV,0,svg,13,circle",
+ "selector": "div.holographic-panel > div.holo-content > svg.holo-svg > circle.blip",
+ "boundingRect": {
+ "top": 6828,
+ "bottom": 6832,
+ "left": 238,
+ "right": 242,
+ "width": 4,
+ "height": 4
+ },
+ "snippet": "
",
+ "nodeLabel": "div.holographic-panel > div.holo-content > svg.holo-svg > circle.blip"
+ },
+ "subItems": {
+ "type": "subitems",
+ "items": [
+ {
+ "failureReason": "Unsupported CSS Property: r",
+ "animation": "lcars-blip-pulse"
+ }
+ ]
+ }
+ },
+ {
+ "node": {
+ "type": "node",
+ "lhId": "page-5-circle",
+ "path": "1,HTML,1,BODY,5,MAIN,11,DIV,0,DIV,0,svg,12,circle",
+ "selector": "div.holographic-panel > div.holo-content > svg.holo-svg > circle.blip",
+ "boundingRect": {
+ "top": 6841,
+ "bottom": 6846,
+ "left": 198,
+ "right": 202,
+ "width": 5,
+ "height": 5
+ },
+ "snippet": "",
+ "nodeLabel": "div.holographic-panel > div.holo-content > svg.holo-svg > circle.blip"
+ },
+ "subItems": {
+ "type": "subitems",
+ "items": [
+ {
+ "failureReason": "Unsupported CSS Property: r",
+ "animation": "lcars-blip-pulse"
+ }
+ ]
+ }
+ },
+ {
+ "node": {
+ "type": "node",
+ "lhId": "page-6-circle",
+ "path": "1,HTML,1,BODY,5,MAIN,11,DIV,0,DIV,0,svg,11,circle",
+ "selector": "div.holographic-panel > div.holo-content > svg.holo-svg > circle.blip",
+ "boundingRect": {
+ "top": 6787,
+ "bottom": 6792,
+ "left": 251,
+ "right": 256,
+ "width": 5,
+ "height": 5
+ },
+ "snippet": "",
+ "nodeLabel": "div.holographic-panel > div.holo-content > svg.holo-svg > circle.blip"
+ },
+ "subItems": {
+ "type": "subitems",
+ "items": [
+ {
+ "failureReason": "Unsupported CSS Property: r",
+ "animation": "lcars-blip-pulse"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "guidanceLevel": 2
+ },
+ "unsized-images": {
+ "id": "unsized-images",
+ "title": "Image elements have explicit `width` and `height`",
+ "description": "Set an explicit width and height on image elements to reduce layout shifts and improve CLS. [Learn how to set image dimensions](https://web.dev/articles/optimize-cls#images_without_dimensions)",
+ "score": 1,
+ "scoreDisplayMode": "metricSavings",
+ "metricSavings": {
+ "CLS": 0
+ },
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ },
+ "guidanceLevel": 3
+ },
+ "valid-source-maps": {
+ "id": "valid-source-maps",
+ "title": "Page has valid source maps",
+ "description": "Source maps translate minified code to the original source code. This helps developers debug in production. In addition, Lighthouse is able to provide further insights. Consider deploying source maps to take advantage of these benefits. [Learn more about source maps](https://developer.chrome.com/docs/devtools/javascript/source-maps/).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "prioritize-lcp-image": {
+ "id": "prioritize-lcp-image",
+ "title": "Preload Largest Contentful Paint image",
+ "description": "If the LCP element is dynamically added to the page, you should preload the image in order to improve LCP. [Learn more about preloading LCP elements](https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered).",
+ "score": 1,
+ "scoreDisplayMode": "metricSavings",
+ "numericValue": 0,
+ "numericUnit": "millisecond",
+ "displayValue": "",
+ "metricSavings": {
+ "LCP": 0
+ },
+ "details": {
+ "type": "opportunity",
+ "headings": [],
+ "items": [],
+ "overallSavingsMs": 0,
+ "sortedBy": [
+ "wastedMs"
+ ],
+ "debugData": {
+ "type": "debugdata",
+ "initiatorPath": [
+ {
+ "url": "http://localhost:36941/scifi-ui/assets/loader-lcars.svg",
+ "initiatorType": "parser"
+ },
+ {
+ "url": "http://localhost:36941/scifi-ui/index.html",
+ "initiatorType": "other"
+ }
+ ],
+ "pathLength": 2
+ }
+ },
+ "guidanceLevel": 3
+ },
+ "csp-xss": {
+ "id": "csp-xss",
+ "title": "Ensure CSP is effective against XSS attacks",
+ "description": "A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn how to use a CSP to prevent XSS](https://developer.chrome.com/docs/lighthouse/best-practices/csp-xss/)",
+ "score": null,
+ "scoreDisplayMode": "informative",
+ "details": {
+ "type": "table",
+ "headings": [
+ {
+ "key": "description",
+ "valueType": "text",
+ "subItemsHeading": {
+ "key": "description"
+ },
+ "label": "Description"
+ },
+ {
+ "key": "directive",
+ "valueType": "code",
+ "subItemsHeading": {
+ "key": "directive"
+ },
+ "label": "Directive"
+ },
+ {
+ "key": "severity",
+ "valueType": "text",
+ "subItemsHeading": {
+ "key": "severity"
+ },
+ "label": "Severity"
+ }
+ ],
+ "items": [
+ {
+ "severity": "High",
+ "description": "No CSP found in enforcement mode"
+ }
+ ]
+ }
+ },
+ "script-treemap-data": {
+ "id": "script-treemap-data",
+ "title": "Script Treemap Data",
+ "description": "Used for treemap app",
+ "score": null,
+ "scoreDisplayMode": "informative",
+ "details": {
+ "type": "treemap-data",
+ "nodes": [
+ {
+ "name": "http://localhost:36941/scifi-ui/index.html",
+ "resourceBytes": 601,
+ "children": [
+ {
+ "name": "(inline) (function () {\n…",
+ "resourceBytes": 601,
+ "unusedBytes": 0
+ }
+ ]
+ },
+ {
+ "name": "http://localhost:36941/scifi-ui/scripts/site.js",
+ "resourceBytes": 3455,
+ "unusedBytes": 1030
+ },
+ {
+ "name": "http://localhost:36941/scifi-ui/scripts/holographic-panel.js",
+ "resourceBytes": 9893,
+ "unusedBytes": 268
+ },
+ {
+ "name": "http://localhost:36941/scifi-ui/scripts/splash.js?v=splash-1p5s",
+ "resourceBytes": 1675,
+ "unusedBytes": 230
+ }
+ ]
+ }
+ },
+ "pwa-cross-browser": {
+ "id": "pwa-cross-browser",
+ "title": "Site works cross-browser",
+ "description": "To reach the most number of users, sites should work across every major browser. [Learn about cross-browser compatibility](https://developer.chrome.com/docs/lighthouse/pwa/pwa-cross-browser/).",
+ "score": null,
+ "scoreDisplayMode": "manual"
+ },
+ "pwa-page-transitions": {
+ "id": "pwa-page-transitions",
+ "title": "Page transitions don't feel like they block on the network",
+ "description": "Transitions should feel snappy as you tap around, even on a slow network. This experience is key to a user's perception of performance. [Learn more about page transitions](https://developer.chrome.com/docs/lighthouse/pwa/pwa-page-transitions/).",
+ "score": null,
+ "scoreDisplayMode": "manual"
+ },
+ "pwa-each-page-has-url": {
+ "id": "pwa-each-page-has-url",
+ "title": "Each page has a URL",
+ "description": "Ensure individual pages are deep linkable via URL and that URLs are unique for the purpose of shareability on social media. [Learn more about providing deep links](https://developer.chrome.com/docs/lighthouse/pwa/pwa-each-page-has-url/).",
+ "score": null,
+ "scoreDisplayMode": "manual"
+ },
+ "accesskeys": {
+ "id": "accesskeys",
+ "title": "`[accesskey]` values are unique",
+ "description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.8/accesskeys).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-allowed-attr": {
+ "id": "aria-allowed-attr",
+ "title": "`[aria-*]` attributes match their roles",
+ "description": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.8/aria-allowed-attr).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "aria-allowed-role": {
+ "id": "aria-allowed-role",
+ "title": "Values assigned to `role=\"\"` are valid ARIA roles.",
+ "description": "ARIA `role`s enable assistive technologies to know the role of each element on the web page. If the `role` values are misspelled, not existing ARIA `role` values, or abstract roles, then the purpose of the element will not be communicated to users of assistive technologies. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.8/aria-allowed-role).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "aria-command-name": {
+ "id": "aria-command-name",
+ "title": "`button`, `link`, and `menuitem` elements have accessible names",
+ "description": "When an element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.8/aria-command-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-dialog-name": {
+ "id": "aria-dialog-name",
+ "title": "Elements with `role=\"dialog\"` or `role=\"alertdialog\"` have accessible names.",
+ "description": "ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. [Learn how to make ARIA dialog elements more accessible](https://dequeuniversity.com/rules/axe/4.8/aria-dialog-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-hidden-body": {
+ "id": "aria-hidden-body",
+ "title": "`[aria-hidden=\"true\"]` is not present on the document ``",
+ "description": "Assistive technologies, like screen readers, work inconsistently when `aria-hidden=\"true\"` is set on the document ``. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.8/aria-hidden-body).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "aria-hidden-focus": {
+ "id": "aria-hidden-focus",
+ "title": "`[aria-hidden=\"true\"]` elements do not contain focusable descendents",
+ "description": "Focusable descendents within an `[aria-hidden=\"true\"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.8/aria-hidden-focus).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "aria-input-field-name": {
+ "id": "aria-input-field-name",
+ "title": "ARIA input fields have accessible names",
+ "description": "When an input field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.8/aria-input-field-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-meter-name": {
+ "id": "aria-meter-name",
+ "title": "ARIA `meter` elements have accessible names",
+ "description": "When a meter element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.8/aria-meter-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-progressbar-name": {
+ "id": "aria-progressbar-name",
+ "title": "ARIA `progressbar` elements have accessible names",
+ "description": "When a `progressbar` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.8/aria-progressbar-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-required-attr": {
+ "id": "aria-required-attr",
+ "title": "`[role]`s have all required `[aria-*]` attributes",
+ "description": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.8/aria-required-attr).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-required-children": {
+ "id": "aria-required-children",
+ "title": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.",
+ "description": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.8/aria-required-children).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-required-parent": {
+ "id": "aria-required-parent",
+ "title": "`[role]`s are contained by their required parent element",
+ "description": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.8/aria-required-parent).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-roles": {
+ "id": "aria-roles",
+ "title": "`[role]` values are valid",
+ "description": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.8/aria-roles).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-text": {
+ "id": "aria-text",
+ "title": "Elements with the `role=text` attribute do not have focusable descendents.",
+ "description": "Adding `role=text` around a text node split by markup enables VoiceOver to treat it as one phrase, but the element's focusable descendents will not be announced. [Learn more about the `role=text` attribute](https://dequeuniversity.com/rules/axe/4.8/aria-text).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-toggle-field-name": {
+ "id": "aria-toggle-field-name",
+ "title": "ARIA toggle fields have accessible names",
+ "description": "When a toggle field doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.8/aria-toggle-field-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-tooltip-name": {
+ "id": "aria-tooltip-name",
+ "title": "ARIA `tooltip` elements have accessible names",
+ "description": "When a tooltip element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.8/aria-tooltip-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-treeitem-name": {
+ "id": "aria-treeitem-name",
+ "title": "ARIA `treeitem` elements have accessible names",
+ "description": "When a `treeitem` element doesn't have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about labeling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.8/aria-treeitem-name).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "aria-valid-attr-value": {
+ "id": "aria-valid-attr-value",
+ "title": "`[aria-*]` attributes have valid values",
+ "description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.8/aria-valid-attr-value).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "aria-valid-attr": {
+ "id": "aria-valid-attr",
+ "title": "`[aria-*]` attributes are valid and not misspelled",
+ "description": "Assistive technologies, like screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.8/aria-valid-attr).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "button-name": {
+ "id": "button-name",
+ "title": "Buttons have an accessible name",
+ "description": "When a button doesn't have an accessible name, screen readers announce it as \"button\", making it unusable for users who rely on screen readers. [Learn how to make buttons more accessible](https://dequeuniversity.com/rules/axe/4.8/button-name).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
+ "bypass": {
+ "id": "bypass",
+ "title": "The page contains a heading, skip link, or landmark region",
+ "description": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.8/bypass).",
+ "score": null,
+ "scoreDisplayMode": "notApplicable"
+ },
+ "color-contrast": {
+ "id": "color-contrast",
+ "title": "Background and foreground colors do not have a sufficient contrast ratio.",
+ "description": "Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.8/color-contrast).",
+ "score": 0,
+ "scoreDisplayMode": "binary",
+ "details": {
+ "type": "table",
+ "headings": [
+ {
+ "key": "node",
+ "valueType": "node",
+ "subItemsHeading": {
+ "key": "relatedNode",
+ "valueType": "node"
+ },
+ "label": "Failing Elements"
+ }
+ ],
+ "items": [
+ {
+ "node": {
+ "type": "node",
+ "lhId": "1-0-H3",
+ "path": "1,HTML,1,BODY,5,MAIN,3,SECTION,1,DIV,0,A,0,H3",
+ "selector": "section#downloads > div.download-grid > a.card > h3",
+ "boundingRect": {
+ "top": 706,
+ "bottom": 737,
+ "left": 90,
+ "right": 624,
+ "width": 535,
+ "height": 31
+ },
+ "snippet": "