Webperf result blog.mathiaskunto.com

3.72

Results from https://blog.mathiaskunto.com/

404 Page

5.00

Results collected at 2025-07-02

Standards section:
- Page not found, has expected 404 responseok
- Page not found, valid title foundok
- Page not found, valid h1 header foundok
- Page not found, valid text foundok
- Page not found, valid text foundok
- Page not found, valid 404 response status code usedok
- Page not found, used supported localeok
- Page not found, valid body text foundok
- Page not found, network is usableok

Sitespeed.io

4.66

Results collected at 2025-07-02

Performance section:
- [desktop] TTFB (Time to First Byte): 341.67ms, ±25.33ms 3.00
- [desktop] DOMContentLoaded: 577.67ms, ±77.33ms 4.84
- [desktop] LCP (Largest Contentful Paint): 878.00ms, ±102.00ms 3.00
- [desktop] Load: 864.67ms, ±93.33ms 4.27
- [desktop] TBT (Total Blocking Time): 28.50ms, ±2.50ms 5.00
- [desktop] CLS (Cumulative Layout Shift): 0.00ms, ±0.00ms 5.00
- [desktop] FirstVisualChange: 717.00ms, ±184.00ms 4.57
- [desktop] SpeedIndex: 815.50ms, ±170.50ms 4.37
- [desktop] VisualComplete85: 966.50ms, ±133.50ms 4.07
- [desktop] FCP (First Contentful Paint): 684.00ms, ±0.00ms 5.00
- [desktop] firstPaint: 684.00ms, ±156.00ms
- [desktop] LastVisualChange: 2200.00ms, ±100.00ms
- [mobile] TTFB (Time to First Byte): 296.67ms, ±13.33ms 5.00
- [mobile] DOMContentLoaded: 536.00ms, ±28.00ms 5.00
- [mobile] LCP (Largest Contentful Paint): 688.00ms, ±36.00ms 5.00
- [mobile] Load: 808.67ms, ±18.33ms 5.00
- [mobile] TBT (Total Blocking Time): 14.00ms, ±13.00ms 5.00
- [mobile] CLS (Cumulative Layout Shift): 0.00ms, ±0.00ms 5.00
- [mobile] FirstVisualChange: 300.50ms, ±233.50ms 5.00
- [mobile] SpeedIndex: 421.50ms, ±354.50ms 5.00
- [mobile] VisualComplete85: 501.00ms, ±434.00ms 5.00
- [mobile] FCP (First Contentful Paint): 566.00ms, ±0.00ms 5.00
- [mobile] firstPaint: 566.00ms, ±46.00ms
- [mobile] LastVisualChange: 983.50ms, ±916.50ms

Pa11y

1.00

Results collected at 2025-07-02

Accessibility section:
- This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 2.35:1. Recommendation: change text colour to #717682.error
Tested:
- https://blog.mathiaskunto.com/

- Duplicate id attribute value "featured-thumbnail" found on the web page.error
Tested:
- https://blog.mathiaskunto.com/

- This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 3.17:1. Recommendation: change text colour to #8f7300.error
Tested:
- https://blog.mathiaskunto.com/

- Anchor element found with a valid href attribute, but no link content has been supplied.error
Tested:
- https://blog.mathiaskunto.com/

- This form does not contain a submit button, which creates issues for those who cannot submit the form using the keyboard. Submit buttons are INPUT elements with type attribute "submit" or "image", or BUTTON elements with type "submit" or omitted/invalid.error
Tested:
- https://blog.mathiaskunto.com/

- This searchinput element does not have a name available to an accessibility API. Valid names are: label element, title undefined, aria-label undefined, aria-labelledby undefined.error
Tested:
- https://blog.mathiaskunto.com/

- Img element is the only content of the link, but is missing alt text. The alt text should describe the purpose of the link.error
Tested:
- https://blog.mathiaskunto.com/

- Duplicate id attribute value "navigation" found on the web page.error
Tested:
- https://blog.mathiaskunto.com/

- Duplicate id attribute value "pull" found on the web page.error
Tested:
- https://blog.mathiaskunto.com/

- Duplicate id attribute value "menu-menu-1" found on the web page.error
Tested:
- https://blog.mathiaskunto.com/

- Duplicate id attribute value "menu-item-4019" found on the web page.error
Tested:
- https://blog.mathiaskunto.com/

- Duplicate id attribute value "menu-item-4020" found on the web page.error
Tested:
- https://blog.mathiaskunto.com/

- This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 2.26:1. Recommendation: change text colour to #338711.error
Tested:
- https://blog.mathiaskunto.com/

- This element has insufficient contrast at this conformance level. Expected a contrast ratio of at least 4.5:1, but text in this element has a contrast ratio of 2.11:1. Recommendation: change background to #047cbe.error
Tested:
- https://blog.mathiaskunto.com/

Integrity

2.78

Results collected at 2025-07-02

- Rather poor on user privacy.

Security section:
- HTTPS by default is good! 5.00
- HTTP Strict Transport Security HSTS is ok, with 1 error(s) and 1 warning(s). 4.25
- Content Security Policy is pretty bad. 1.00
- Reporting CSP Certificate Transparency Network Error Logging is not that good. 2.50
- Referrer Policy is not that good. 2.50
- Subresource Integrity SRI is pretty bad. 1.00
- HTTP headers is good! 5.00
- Cookies is ok, with 8 error(s) and 0 warning(s). 1.00

Carbon Calculator

4.60

Results collected at 2025-07-02

- Webpage generates very little carbon dioxide!
- Carbon dioxide per pageview: 1.06 gram(s)
- More green than 92 % of the websites tested by webperf.se (Reference updated: 2025-01-09).
- Network transfer size: 1.68 MB 4.60

Software

4.98

Results collected at 2025-07-02

- CMS used: wordpress
- Web server used: tomcat
- Technology used: js, php
- License(s) used: apache-2.0, mit
- Metadata used: apple-touch-icon, canonical, dns-prefetch, icon, viewport
- Javascript libraries used: jquery, jquery-migrate, jquery-ui, pace, parallax
- Languages found: en-us
- Image formats used: jpeg, jpg, png

Accessibility section:
##### You don't seem to be using accessibility overlay software 5.00

Security section:
##### Software is behind >=1 versions 4.9

###### Introduction:
Software used is behind 1 or more version compared to latests.
This is a small indicator that you need to update to latest version.
You can fix this by updating software to latest version.

###### Detected software(s):
- jquery-migrate 3.4.1
- jquery-ui 1.13.3

###### Affected resource(s):
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3
##### NO Common Vulnerabilities and Exposures found 5.00
##### Opensource software used seem to be maintained 5.00
##### You don't seem to be using 'END OF LIFE' software 5.00

Stylelint CSS

2.90

Results collected at 2025-07-02

Standards section:
- CSS, Disallow unknown custom propertieserror
More info:
- https://stylelint.io/user-guide/rules/no-unknown-custom-properties

Tested:
- https://blog.mathiaskunto.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.1

- CSS, Disallow unknown values for properties within declarationserror
More info:
- https://stylelint.io/user-guide/rules/declaration-property-value-no-unknown

Tested:
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/style.css?ver=6.8.1
- https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/css/owl.carousel.css

- CSS, Disallow unknown functionserror
More info:
- https://stylelint.io/user-guide/rules/function-no-unknown

Tested:
- https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css?ver=6.8.1

- CSS, Disallow unknown pseudo-class selectorserror
More info:
- https://stylelint.io/user-guide/rules/selector-pseudo-class-no-unknown

Tested:
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/style.css?ver=6.8.1

- CSS, Disallow empty blockswarning
More info:
- https://stylelint.io/user-guide/rules/block-no-empty

Tested:
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/style.css?ver=6.8.1

- CSS, Disallow deprecated keywords for properties within declarationswarning
More info:
- https://stylelint.io/user-guide/rules/declaration-property-value-keyword-no-deprecated

Tested:
- https://blog.mathiaskunto.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.1

- CSS, Disallow unknown annotationsok
More info:
- https://stylelint.io/user-guide/rules/annotation-no-unknown

- CSS, Disallow unknown descriptors for at-rulesok
More info:
- https://stylelint.io/user-guide/rules/at-rule-descriptor-no-unknown

- CSS, Disallow unknown values for descriptors within at-rulesok
More info:
- https://stylelint.io/user-guide/rules/at-rule-descriptor-value-no-unknown

- CSS, Disallow deprecated at-rulesok
More info:
- https://stylelint.io/user-guide/rules/at-rule-no-deprecated

- CSS, Disallow unknown at-rulesok
More info:
- https://stylelint.io/user-guide/rules/at-rule-no-unknown

- CSS, Disallow invalid preludes for at-rulesok
More info:
- https://stylelint.io/user-guide/rules/at-rule-prelude-no-invalid

- CSS, Disallow invalid hex colorsok
More info:
- https://stylelint.io/user-guide/rules/color-no-invalid-hex

- CSS, Disallow empty commentsok
More info:
- https://stylelint.io/user-guide/rules/comment-no-empty

- CSS, Disallow non-standard direction values for linear gradient functionsok
More info:
- https://stylelint.io/user-guide/rules/function-linear-gradient-no-nonstandard-direction

- CSS, Disallow unknown media feature namesok
More info:
- https://stylelint.io/user-guide/rules/media-feature-name-no-unknown

- CSS, Disallow unknown values for media featuresok
More info:
- https://stylelint.io/user-guide/rules/media-feature-name-value-no-unknown

- CSS, Disallow invalid media queriesok
More info:
- https://stylelint.io/user-guide/rules/media-query-no-invalid

- CSS, Disallow invalid named grid areasok
More info:
- https://stylelint.io/user-guide/rules/named-grid-areas-no-invalid

- CSS, Disallow empty sourcesok
More info:
- https://stylelint.io/user-guide/rules/no-empty-source

- CSS, Disallow invalid double-slash commentsok
More info:
- https://stylelint.io/user-guide/rules/no-invalid-double-slash-comments

- CSS, Disallow invalid position `@import` rulesok
More info:
- https://stylelint.io/user-guide/rules/no-invalid-position-at-import-rule

- CSS, Disallow unknown animationsok
More info:
- https://stylelint.io/user-guide/rules/no-unknown-animations

- CSS, Disallow unknown custom media queriesok
More info:
- https://stylelint.io/user-guide/rules/no-unknown-custom-media

- CSS, Disallow unknown propertiesok
More info:
- https://stylelint.io/user-guide/rules/property-no-unknown

- CSS, Disallow unknown pseudo-element selectorsok
More info:
- https://stylelint.io/user-guide/rules/selector-pseudo-element-no-unknown

- CSS, Disallow unknown type selectorsok
More info:
- https://stylelint.io/user-guide/rules/selector-type-no-unknown

- CSS, Disallow invalid syntax stringsok
More info:
- https://stylelint.io/user-guide/rules/syntax-string-no-invalid

- CSS, Disallow unknown unitsok
More info:
- https://stylelint.io/user-guide/rules/unit-no-unknown

HTML-validate

3.50

Results collected at 2025-07-02

Standards section:
- Disallow duplicated attributeserror
More info:
- https://html-validate.org/rules/no-dup-attr.html

Tested:
- https://blog.mathiaskunto.com/

- Disallow duplicated IDserror
More info:
- https://html-validate.org/rules/no-dup-id.html

Tested:
- https://blog.mathiaskunto.com/

- Require `id` to be a valid identifiererror
More info:
- https://html-validate.org/rules/valid-id.html

Tested:
- https://blog.mathiaskunto.com/

- Require attributes to be separated by whitespaceok
More info:
- https://html-validate.org/rules/attr-spacing.html

- Validate permitted attribute valuesok
More info:
- https://html-validate.org/rules/attribute-allowed-values.html

- Require attribute to be used in correct contextok
More info:
- https://html-validate.org/rules/attribute-misuse.html

- Disallow end tags from having attributesok
More info:
- https://html-validate.org/rules/close-attr.html

- Require elements to be closed in correct orderok
More info:
- https://html-validate.org/rules/close-order.html

- Disallow usage of deprecated elementsok
More info:
- https://html-validate.org/rules/deprecated.html

- Disallow usage of deprecated rulesok
More info:
- https://html-validate.org/rules/deprecated-rule.html

- Require usage of `html` doctypeok
More info:
- https://html-validate.org/rules/doctype-html.html

- Disallow invalid element namesok
More info:
- https://html-validate.org/rules/element-name.html

- Validate permitted contentok
More info:
- https://html-validate.org/rules/element-permitted-content.html

- Validate permitted number of element occurrencesok
More info:
- https://html-validate.org/rules/element-permitted-occurrences.html

- Validate required element orderok
More info:
- https://html-validate.org/rules/element-permitted-order.html

- Validate permitted element parentok
More info:
- https://html-validate.org/rules/element-permitted-parent.html

- Ensure required attributes are setok
More info:
- https://html-validate.org/rules/element-required-attributes.html

- Ensure required elements are presentok
More info:
- https://html-validate.org/rules/element-required-content.html

- Require `<map name>` to be uniqueok
More info:
- https://html-validate.org/rules/map-dup-name.html

- Require name and id to match on `<map>` elementsok
More info:
- https://html-validate.org/rules/map-id-name.html

- Disallow usage of deprecated attributesok
More info:
- https://html-validate.org/rules/no-deprecated-attr.html

- Disallow multiple `<main>`ok
More info:
- https://html-validate.org/rules/no-multiple-main.html

- Disallow the use of unescaped special charactersok
More info:
- https://html-validate.org/rules/no-raw-characters.html

- Disallow unused disable directivesok
More info:
- https://html-validate.org/rules/no-unused-disable.html

- Require end tag for `<script>`ok
More info:
- https://html-validate.org/rules/script-element.html

- Disallow unrecognized character referencesok
More info:
- https://html-validate.org/rules/unrecognized-char-ref.html

- Require autocomplete attribute to be validok
More info:
- https://html-validate.org/rules/valid-autocomplete.html

- Disallow void element with contentok
More info:
- https://html-validate.org/rules/void-content.html

ESLint JS

4.33

Results collected at 2025-07-02

Security section:
- Javascript, require the use of === and !==error
More info:
- https://eslint.org/docs/latest/rules/eqeqeq

Tested:
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
- https://blog.mathiaskunto.com/wp-includes/js/wp-emoji-release.min.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/customscript.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/plugins/simple-mail-address-encoder/smae.js?ver=1.0.0
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/owl.carousel.min.js
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/ajax.js?ver=6.8.1
- https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1

- Javascript, disallow javascript: URLserror
More info:
- https://eslint.org/docs/latest/rules/no-script-url

Tested:
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M

- Javascript, disallow calling some Object.prototype methods directly on objectswarning
More info:
- https://eslint.org/docs/latest/rules/no-prototype-builtins

Tested:
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
- https://blog.mathiaskunto.com/wp-includes/js/wp-emoji-release.min.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/customscript.js?ver=6.8.1
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M

- Javascript, disallow new operators with the Function objectwarning
More info:
- https://eslint.org/docs/latest/rules/no-new-func

Tested:
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js

- Javascript, disallow the use of eval()ok
More info:
- https://eslint.org/docs/latest/rules/no-eval

- Javascript, disallow the use of eval()-like methodsok
More info:
- https://eslint.org/docs/latest/rules/no-implied-eval

- Javascript, disallow control flow statements in finally blocksok
More info:
- https://eslint.org/docs/latest/rules/no-unsafe-finally

- Javascript, disallow negating the left operand of relational operatorsok
More info:
- https://eslint.org/docs/latest/rules/no-unsafe-negation

- Javascript, disallow with statementsok
More info:
- https://eslint.org/docs/latest/rules/no-with

- Javascript, disallow async functions which have no await expressionok
More info:
- https://eslint.org/docs/latest/rules/require-await

Standards section:
- Javascript, disallow unused variableswarning
More info:
- https://eslint.org/docs/latest/rules/no-unused-vars

Tested:
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
- https://blog.mathiaskunto.com/wp-includes/js/wp-emoji-release.min.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/customscript.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/parallax.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/plugins/simple-mail-address-encoder/smae.js?ver=1.0.0
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/ajax.js?ver=6.8.1
- https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1

- Javascript, disallow the use of undeclared variables unless mentioned in /*global */ commentswarning
More info:
- https://eslint.org/docs/latest/rules/no-undef

Tested:
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
- https://blog.mathiaskunto.com/
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/customscript.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/parallax.js?ver=6.8.1
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/owl.carousel.min.js
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/ajax.js?ver=6.8.1
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1

- Javascript, disallow unnecessary escape characterswarning
More info:
- https://eslint.org/docs/latest/rules/no-useless-escape

Tested:
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1
- https://blog.mathiaskunto.com/
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3
- https://blog.mathiaskunto.com/wp-content/plugins/simple-mail-address-encoder/smae.js?ver=1.0.0
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/owl.carousel.min.js
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M
- https://blog.mathiaskunto.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1

- Javascript, disallow the use of consolewarning
More info:
- https://eslint.org/docs/latest/rules/no-console

Tested:
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js
- https://blog.mathiaskunto.com/wp-content/themes/yosemite/js/ajax.js?ver=6.8.1
- https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js

- Javascript, disallow unmodified loop conditionswarning
More info:
- https://eslint.org/docs/latest/rules/no-unmodified-loop-condition

Tested:
- https://cookie-cdn.cookiepro.com/scripttemplates/6.18.0/otBannerSdk.js
- https://www.googletagmanager.com/gtag/js?id=G-HDREH87L2M

- Javascript, disallow unnecessary concatenation of literals or template literalsok
More info:
- https://eslint.org/docs/latest/rules/no-useless-concat

Lighthouse

3.43

Results collected at 2025-07-02

- Performance only 2.70
- Accessibility only 2.50

- third-party-cookieserror
Tested:
- https://blog.mathiaskunto.com/

- Issues in the `Issues` panel in Chrome Devtoolserror
Tested:
- https://blog.mathiaskunto.com/

- link-texterror
Tested:
- https://blog.mathiaskunto.com/

- Uses HTTPSok
Tested:
- https://blog.mathiaskunto.com/

- geolocation-on-startok
Tested:
- https://blog.mathiaskunto.com/

- notification-on-startok
Tested:
- https://blog.mathiaskunto.com/

- csp-xssok
Tested:
- https://blog.mathiaskunto.com/

- has-hstsok
Tested:
- https://blog.mathiaskunto.com/

- origin-isolationok
Tested:
- https://blog.mathiaskunto.com/

- paste-preventing-inputsok
Tested:
- https://blog.mathiaskunto.com/

- image-aspect-ratiook
Tested:
- https://blog.mathiaskunto.com/

- Serves images with low resolutionok
Tested:
- https://blog.mathiaskunto.com/

- Has a <meta name="viewport"> tag with width or initial-scaleok
Tested:
- https://blog.mathiaskunto.com/

- font-sizeok
Tested:
- https://blog.mathiaskunto.com/

- doctypeok
Tested:
- https://blog.mathiaskunto.com/

- charsetok
Tested:
- https://blog.mathiaskunto.com/

- js-librariesok
Tested:
- https://blog.mathiaskunto.com/

- deprecationsok
Tested:
- https://blog.mathiaskunto.com/

- errors-in-consoleok
Tested:
- https://blog.mathiaskunto.com/

- valid-source-mapsok
Tested:
- https://blog.mathiaskunto.com/

- is-crawlableok
Tested:
- https://blog.mathiaskunto.com/

- Document has a `<title>` elementok
Tested:
- https://blog.mathiaskunto.com/

- meta-descriptionok
Tested:
- https://blog.mathiaskunto.com/

- http-status-codeok
Tested:
- https://blog.mathiaskunto.com/

- crawlable-anchorsok
Tested:
- https://blog.mathiaskunto.com/

- robots-txtok
Tested:
- https://blog.mathiaskunto.com/

- Image elements have `[alt]` attributesok
Tested:
- https://blog.mathiaskunto.com/

- hreflangok
Tested:
- https://blog.mathiaskunto.com/

- canonicalok
Tested:
- https://blog.mathiaskunto.com/

- Redirects HTTP traffic to HTTPSok
- structured-dataok

Accessibility section:
- aria-dialog-nameerror
Tested:
- https://blog.mathiaskunto.com/

- Background and foreground colors should have a sufficient contrast ratioerror
Tested:
- https://blog.mathiaskunto.com/

- Links are npt distinguishable without relying on colorerror
Tested:
- https://blog.mathiaskunto.com/

- Links should have a discernible nameerror
Tested:
- https://blog.mathiaskunto.com/

- `[user-scalable="no"]` is used in the `<meta name="viewport">` element or the `[maximum-scale]` attribute is less than 5error
Tested:
- https://blog.mathiaskunto.com/

- `[aria-*]` attributes match their rolesok
Tested:
- https://blog.mathiaskunto.com/

- Uses ARIA roles only on compatible elementsok
Tested:
- https://blog.mathiaskunto.com/

- ARIA attributes are used as specified for the element's roleok
Tested:
- https://blog.mathiaskunto.com/

- Deprecated ARIA roles were not usedok
Tested:
- https://blog.mathiaskunto.com/

- `[aria-hidden="true"]` is not present on the document `<body>`ok
Tested:
- https://blog.mathiaskunto.com/

- `[aria-hidden="true"]` elements do not contain focusable descendentsok
Tested:
- https://blog.mathiaskunto.com/

- Elements use only permitted ARIA attributesok
Tested:
- https://blog.mathiaskunto.com/

- `[role]`s have all required `[aria-*]` attributesok
Tested:
- https://blog.mathiaskunto.com/

- `[role]` values are validok
Tested:
- https://blog.mathiaskunto.com/

- `[aria-*]` attributes have valid valuesok
Tested:
- https://blog.mathiaskunto.com/

- `[aria-*]` attributes are valid and not misspelledok
Tested:
- https://blog.mathiaskunto.com/

- Buttons have an accessible nameok
Tested:
- https://blog.mathiaskunto.com/

- Document has a `<title>` elementok
Tested:
- https://blog.mathiaskunto.com/

- Heading elements appear in a sequentially-descending orderok
Tested:
- https://blog.mathiaskunto.com/

- `<html>` element has a `[lang]` attributeok
Tested:
- https://blog.mathiaskunto.com/

- `<html>` element has a valid value for its `[lang]` attributeok
Tested:
- https://blog.mathiaskunto.com/

- Image elements have `[alt]` attributesok
Tested:
- https://blog.mathiaskunto.com/

- Image elements do not have `[alt]` attributes that are redundant textok
Tested:
- https://blog.mathiaskunto.com/

- Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)ok
Tested:
- https://blog.mathiaskunto.com/

- List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elementsok
Tested:
- https://blog.mathiaskunto.com/

- tabindexok
Tested:
- https://blog.mathiaskunto.com/

- Touch targets have sufficient size and spacingok
Tested:
- https://blog.mathiaskunto.com/

- identical-links-same-purposeok
Tested:
- https://blog.mathiaskunto.com/

- accesskeysok
- aria-command-nameok
- aria-input-field-nameok
- aria-meter-nameok
- aria-progressbar-nameok
- Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required childrenok
- `[role]`s are contained by their required parent elementok
- aria-textok
- aria-toggle-field-nameok
- aria-tooltip-nameok
- aria-treeitem-nameok
- bypassok
- definition-listok
- dlitemok
- duplicate-id-ariaok
- form-field-multiple-labelsok
- frame-titleok
- html-xml-lang-mismatchok
- input-button-nameok
- input-image-altok
- labelok
- meta-refreshok
- object-altok
- select-nameok
- skip-linkok
- table-duplicate-nameok
- td-headers-attrok
- th-has-data-cellsok
- valid-langok
- video-captionok
- focusable-controlsok
- interactive-element-affordanceok
- logical-tab-orderok
- visual-order-follows-domok
- focus-trapsok
- managed-focusok
- use-landmarksok
- offscreen-content-hiddenok
- custom-controls-labelsok
- custom-controls-rolesok
- empty-headingok
- landmark-one-mainok
- label-content-name-mismatchok
- table-fake-captionok
- td-has-headerok

Performance section:
- Largest Contentful Painterror
Tested:
- https://blog.mathiaskunto.com/

- Reduce unused CSSerror
Tested:
- https://blog.mathiaskunto.com/

- Reduce unused JavaScripterror
Tested:
- https://blog.mathiaskunto.com/

- Preconnect to required originserror
Tested:
- https://blog.mathiaskunto.com/

- First Contentful Paintwarning
Tested:
- https://blog.mathiaskunto.com/

- Time to Interactivewarning
Tested:
- https://blog.mathiaskunto.com/

- Minify CSSwarning
Tested:
- https://blog.mathiaskunto.com/

- Avoid serving legacy JavaScript to modern browserswarning
Tested:
- https://blog.mathiaskunto.com/

- Serve static assets with an efficient cache policywarning
Tested:
- https://blog.mathiaskunto.com/

- All text should remains visible during webfont loadswarning
Tested:
- https://blog.mathiaskunto.com/

- Total Blocking Timeok
Tested:
- https://blog.mathiaskunto.com/

- Cumulative Layout Shiftok
Tested:
- https://blog.mathiaskunto.com/

- Speed Indexok
Tested:
- https://blog.mathiaskunto.com/

- Max Potential First Input Delayok
Tested:
- https://blog.mathiaskunto.com/

- Properly size imagesok
Tested:
- https://blog.mathiaskunto.com/

- Defer offscreen imagesok
Tested:
- https://blog.mathiaskunto.com/

- Minify JavaScriptok
Tested:
- https://blog.mathiaskunto.com/

- Efficiently encode imagesok
Tested:
- https://blog.mathiaskunto.com/

- Serve images in next-gen formatsok
Tested:
- https://blog.mathiaskunto.com/

- Enable text compressionok
Tested:
- https://blog.mathiaskunto.com/

- Initial server response time was shortok
Tested:
- https://blog.mathiaskunto.com/

- Avoid multiple page redirectsok
Tested:
- https://blog.mathiaskunto.com/

- Use video formats for animated contentok
Tested:
- https://blog.mathiaskunto.com/

- Remove duplicate modules in JavaScript bundlesok
Tested:
- https://blog.mathiaskunto.com/

- Avoids enormous network payloadsok
Tested:
- https://blog.mathiaskunto.com/

- Avoid an excessive DOM sizeok
Tested:
- https://blog.mathiaskunto.com/

- critical-request-chainsok
Tested:
- https://blog.mathiaskunto.com/

- JavaScript execution timeok
Tested:
- https://blog.mathiaskunto.com/

- Minimizes main-thread workok
Tested:
- https://blog.mathiaskunto.com/

- third-party-summaryok
Tested:
- https://blog.mathiaskunto.com/

- Uses passive listeners to improve scrolling performanceok
Tested:
- https://blog.mathiaskunto.com/

- Javascript, avoids `document.write()ok
Tested:
- https://blog.mathiaskunto.com/

- Avoids long main-thread tasksok
Tested:
- https://blog.mathiaskunto.com/

- Image elements have explicit `width` and `height`ok
Tested:
- https://blog.mathiaskunto.com/

- Has a <meta name="viewport"> tag with width or initial-scaleok
Tested:
- https://blog.mathiaskunto.com/

- Network Requestsok
Tested:
- https://blog.mathiaskunto.com/

- Network Round Trip Timesok
Tested:
- https://blog.mathiaskunto.com/

- Server Backend Latenciesok
Tested:
- https://blog.mathiaskunto.com/

- Main thread tasksok
Tested:
- https://blog.mathiaskunto.com/

- Diagnosticsok
Tested:
- https://blog.mathiaskunto.com/

- Metricsok
Tested:
- https://blog.mathiaskunto.com/

- Screenshot Thumbnailsok
Tested:
- https://blog.mathiaskunto.com/

- final-screenshotok
Tested:
- https://blog.mathiaskunto.com/

- script-treemap-dataok
Tested:
- https://blog.mathiaskunto.com/

- resource-summaryok
Tested:
- https://blog.mathiaskunto.com/

- first-meaningful-paintok
- Eliminate render-blocking resourcesok
- prioritize-lcp-imageok
- user-timingsok
- third-party-facadesok
- Largest Contentful Paint elementok
- lcp-lazy-loadedok
- Avoid large layout shiftsok
- non-composited-animationsok