https://inboxajans.com Website Teknik Analiz Raporu

Analiz Edilen Site: https://inboxajans.com
Genel Skor: 92 — Mükemmel seviyede

Bu sayfa, https://inboxajans.com için Google PageSpeed / Lighthouse verileri kullanılarak oluşturulmuş bir website teknik analiz raporudur. Performans, SEO, erişilebilirlik ve en iyi uygulamalar gibi başlıklarda sitenin mevcut durumu ve iyileştirme alanları özetlenmiştir.

Performance
83
SEO
100
Accessibility
83
Best Practices
100
PWA
N/A

AI Destekli Teknik Rapor

# Web Performans Raporu: Inbox AI Engine

## 1. Genel Değerlendirme

Inbox AI Engine web sitesinin Google PageSpeed Insights verilerine göre değerlendirmesi oldukça olumlu bir tablo çizmektedir. Genel puan 92 olarak belirlenmiş olup, bu da sitenin performans, SEO (Arama Motoru Optimizasyonu), erişilebilirlik ve en iyi uygulamalar açısından oldukça iyi bir seviyede olduğunu göstermektedir. Özellikle SEO ve en iyi uygulamalar kategorilerinde 100 puan alarak mükemmel bir performans sergilemiştir. Ancak, performans ve erişilebilirlik alanlarında geliştirilmesi gereken bazı noktalar bulunmaktadır.

## 2. Güçlü Yönler

- **SEO Performansı:** Web sitesinin SEO puanı 100'dür. Bu, arama motorlarında daha iyi görünürlük için gerekli olan tüm temel unsurların yerine getirildiğini göstermektedir.

- **En İyi Uygulamalar:** Yine 100 puan alan bu kategori, sitenizin kullanıcı deneyimini iyileştirmek için en iyi uygulamaların uygulandığını belirtir.

- **Genel Performans Puanı:** 92 puan, genel olarak iyi bir kullanıcı deneyimi sunduğunu göstermektedir ve kullanıcıların sitede kalma sürelerini artırma potansiyeline sahiptir.

## 3. İyileştirme Önerileri

- **Kullanılmayan JavaScript'i Azaltma:** Kullanılmayan JavaScript’i azaltarak, ağ trafiği üzerinde olumlu bir etki yaratabilirsiniz. Önerilen tasarruf miktarı 150 bayt olarak belirlenmiştir. Bu, sayfa yükleme sürelerini azaltabilir.

- **CSS'i Minify Etme:** CSS dosyalarının küçültülmesi, ağ yüklenme boyutlarını azaltır. Mevcut durumda kaydedilecek bir tasarruf görülmemektedir ancak bu işlem gereklidir.

- **Sayfa Yönlendirmelerinden Kaçınma:** Sayfada yapılan yönlendirmeler, ek gecikmelere neden olmaktadır. Bu gecikmeleri ortadan kaldırmak, kullanıcı deneyimini iyileştirebilir.

- **Görsel Optimizasyonu:** Görsellerin boyutlarını optimize etmek, sayfa yükleme sürelerini olumlu yönde etkileyecektir. İlgili görsellere modern formatlar (WebP, AVIF) uygulamak ve dosya boyutlarını küçültmek önerilmektedir.

- **Erişilebilirlik ile İlgili İyileştirmeler:** Erişilebilirlik alanında bazı başlıkların ve elementlerin uygun hale getirilmesi gerekmektedir. Örneğin, ARIA (Accessible Rich Internet Applications) etiketlerine erişilebilir isimler ve işlevsellik kazandırmak, ekran okuyucu kullanıcıları için faydalı olacaktır.

## 4. Teknik Detaylar

Web sitesi aşağıdaki teknik detaylarla birlikte değerlendirilmektedir:

- **Performans Puanı:** 83 (Kategoride yol gösterici ve iyileştirmelere açık)
- **SEO Puanı:** 100
- **Erişilebilirlik Puanı:** 83 (Hedeflenen tüm kullanıcı gruplarına hitap etmek için iyileştirmeye ihtiyaç var)
- **En İyi Uygulamalar Puanı:** 100

### Olası İyileştirmeler:
- Kullanılmayan JavaScript ve CSS’i azaltmak, ağ yükleme sürelerinde önemli kazançlar sağlayabilir.
- Görsel içerikleri optimize etmek ve boyutlarını küçültmek, sayfanın yüklenme süresini önemli ölçüde hızlandırabilir.

## 5. Sonuç ve Öneriler

Inbox AI Engine web sitesi, içerik sunumu ve SEO açısından güçlü bir performans sergilemektedir. Ancak, sıklıkla kullanılan JavaScript ve CSS dosyalarının optimizasyonu ile ulaşılacak performans artışları vardır. Görsellerin optimize edilmesi de kullanıcı deneyimini önemli ölçüde iyileştirecektir.

Üzerinde durulması gereken erişilebilirlik sorunları, özellikle ekran okuyucu kullanan kullanıcılar için sitenin ulaşılabilirliğini artırmak amacıyla düzeltmeye ihtiyaç duymaktadır. Bu önerilere yönelik adımlar atılması, sitenin genel kullanıcı deneyimini ve erişilebilirliğini artırarak, daha geniş bir kullanıcı kitlesine ulaşılmasına yardımcı olacaktır.

Detaylı e-posta raporu ister misiniz?

Inbox AI Engine, https://inboxajans.com için kapsamlı teknik değerlendirmeyi PDF formatında hazırlayıp 24 saat içinde e-posta adresinize iletebilir.

Performans, SEO ve kullanıcı deneyimi tarafında kalıcı iyileştirmeler için Inbox Ajans ekibiyle birlikte çalışabilirsiniz.

Yeni Website Analizi Başlat Uzmanla Görüş

Developer Mode

Lighthouse tarafından üretilen teknik hata ve önerilerin özetlenmiş listesi. Bu bölüm daha çok geliştiriciler ve teknik ekipler için hazırlanmıştır.

🚀 Opportunities (Performans İyileştirme)

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](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

+150ms potansiyel kazanç
Minify CSS

Minifying CSS files can reduce network payload sizes. [Learn how to minify CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css/).

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](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

Minify JavaScript

Minifying JavaScript files can reduce payload sizes and script parse time. [Learn how to minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/).

Avoid multiple page redirects

Redirects introduce additional delays before the page can be loaded. [Learn how to avoid page redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects/).

Initial server response time was short

Keep the server response time for the main document short because all other requests depend on it. [Learn more about the Time to First Byte metric](https://developer.chrome.com/docs/lighthouse/performance/time-to-first-byte/).

❌ Failed Audits

ARIA `progressbar` elements have accessible names

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.11/aria-progressbar-name).

Uses ARIA roles only on compatible elements

Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role).

`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.

Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells).

`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.

When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/definition-list).

LCP request discovery

[Optimize LCP](https://developer.chrome.com/docs/performance/insights/lcp-discovery) by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading

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](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

Detaylar
{
    "items": [
        {
            "wastedPercent": 37.96473991093154,
            "totalBytes": 143395,
            "wastedBytes": 54440,
            "url": "https:\/\/www.googletagmanager.com\/gtag\/js?id=G-S88N2M3DWV"
        }
    ],
    "overallSavingsBytes": 54440,
    "debugData": {
        "type": "debugdata",
        "metricSavings": {
            "LCP": 150,
            "FCP": 300
        }
    },
    "headings": [
        {
            "label": "URL",
            "valueType": "url",
            "key": "url",
            "subItemsHeading": {
                "valueType": "code",
                "key": "source"
            }
        },
        {
            "valueType": "bytes",
            "key": "totalBytes",
            "subItemsHeading": {
                "key": "sourceBytes"
            },
            "label": "Transfer Size"
        },
        {
            "key": "wastedBytes",
            "subItemsHeading": {
                "key": "sourceWastedBytes"
            },
            "valueType": "bytes",
            "label": "Est Savings"
        }
    ],
    "type": "opportunity",
    "overallSavingsMs": 150,
    "sortedBy": [
        "wastedBytes"
    ]
}
Structured data is valid

Run the [Structured Data Testing Tool](https://developers.google.com/search/docs/appearance/structured-data/) to validate structured data. [Learn more about Structured Data](https://developer.chrome.com/docs/lighthouse/seo/structured-data/).

Elements with the `role=text` attribute do not have focusable descendents.

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.11/aria-text).

INP breakdown

Start investigating [how to improve INP](https://developer.chrome.com/docs/performance/insights/inp-breakdown) by looking at the longest subpart.

ARIA `meter` elements have accessible names

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.11/aria-meter-name).

User Timing marks and measures

Consider instrumenting your app with the User Timing API to measure your app's real-world performance during key user experiences. [Learn more about User Timing marks](https://developer.chrome.com/docs/lighthouse/performance/user-timings/).

Detaylar
{
    "headings": [
        {
            "label": "Name",
            "key": "name",
            "valueType": "text"
        },
        {
            "key": "timingType",
            "valueType": "text",
            "label": "Type"
        },
        {
            "granularity": 0.01,
            "valueType": "ms",
            "key": "startTime",
            "label": "Start Time"
        },
        {
            "label": "Duration",
            "granularity": 0.01,
            "valueType": "ms",
            "key": "duration"
        }
    ],
    "items": [],
    "type": "table"
}
`[lang]` attributes have a valid value

Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/valid-lang).

Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.

Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr).

`<object>` elements have alternate text

Screen readers cannot translate non-text content. Adding alternate text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.11/object-alt).

ARIA input fields have accessible names

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.11/aria-input-field-name).

Visual order on the page follows DOM order

DOM order matches the visual order, improving navigation for assistive technology. [Learn more about DOM and visual ordering](https://developer.chrome.com/docs/lighthouse/accessibility/visual-order-follows-dom/).

ARIA `tooltip` elements have accessible names

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.11/aria-tooltip-name).

Use efficient cache lifetimes

A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).

Detaylar
{
    "sortedBy": [
        "wastedBytes"
    ],
    "skipSumming": [
        "cacheLifetimeMs"
    ],
    "headings": [
        {
            "valueType": "url",
            "key": "url",
            "label": "Request"
        },
        {
            "valueType": "ms",
            "displayUnit": "duration",
            "label": "Cache TTL",
            "key": "cacheLifetimeMs"
        },
        {
            "key": "totalBytes",
            "granularity": 1,
            "valueType": "bytes",
            "label": "Transfer Size",
            "displayUnit": "kb"
        }
    ],
    "type": "table",
    "debugData": {
        "wastedBytes": 487303.19999999995,
        "type": "debugdata"
    },
    "items": [
        {
            "cacheLifetimeMs": 604800000,
            "url": "https:\/\/inboxajans.com\/uploads\/products\/prd-8e8b4d18-dc83-4f95-8acd-ebd70a8fac28.png",
            "totalBytes": 2740529,
            "wastedBytes": 274052.89999999997
        },
        {
            "url": "https:\/\/inboxajans.com\/uploads\/products\/prd-82bc47f8-e681-48bf-a1d6-bbc60572a382.png",
            "cacheLifetimeMs": 604800000,
            "totalBytes": 1739229,
            "wastedBytes": 173922.89999999997
        },
        {
            "totalBytes": 301911,
            "cacheLifetimeMs": 604800000,
            "wastedBytes": 30191.099999999995,
            "url": "https:\/\/inboxajans.com\/images\/bg-2.webp"
        },
        {
            "wastedBytes": 6477.5999999999985,
            "cacheLifetimeMs": 604800000,
            "url": "https:\/\/inboxajans.com\/images\/bg-3.webp",
            "totalBytes": 64776
        },
        {
            "url": "https:\/\/inboxajans.com\/build\/assets\/main-BrH5JjMY.css",
            "wastedBytes": 2144.6999999999994,
            "cacheLifetimeMs": 604800000,
            "totalBytes": 21447
        },
        {
            "cacheLifetimeMs": 604800000,
            "url": "https:\/\/inboxajans.com\/build\/assets\/main-Da-cMhiV.js",
            "wastedBytes": 513.9999999999999,
            "totalBytes": 5140
        }
    ]
}
Detected JavaScript libraries

All front-end JavaScript libraries detected on the page. [Learn more about this JavaScript library detection diagnostic audit](https://developer.chrome.com/docs/lighthouse/best-practices/js-libraries/).

Custom controls have associated labels

Custom interactive controls have associated labels, provided by aria-label or aria-labelledby. [Learn more about custom controls and labels](https://developer.chrome.com/docs/lighthouse/accessibility/custom-controls-labels/).

Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.

Screen readers have features to make navigating tables easier. Ensuring that tables use the actual caption element instead of cells with the `[colspan]` attribute may improve the experience for screen reader users. [Learn more about captions](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption).

`[role]`s are contained by their required parent element

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.11/aria-required-parent).

Select elements have associated label elements.

Form elements without effective labels can create frustrating experiences for screen reader users. [Learn more about the `select` element](https://dequeuniversity.com/rules/axe/4.11/select-name).

ARIA `treeitem` elements have accessible names

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.11/aria-treeitem-name).

Tables have different content in the summary attribute and `<caption>`.

The summary attribute should describe the table structure, while `<caption>` should have the onscreen title. Accurate table mark-up helps users of screen readers. [Learn more about summary and caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name).

Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.

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.11/aria-required-children).

Input buttons have discernible text.

Adding discernable and accessible text to input buttons may help screen reader users understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.11/input-button-name).

ARIA toggle fields have accessible names

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.11/aria-toggle-field-name).

Elements with `role="dialog"` or `role="alertdialog"` have accessible names.

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.11/aria-dialog-name).

Avoid large layout shifts

These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these 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)

Detaylar
{
    "items": [],
    "type": "table",
    "headings": [
        {
            "valueType": "node",
            "label": "Element",
            "subItemsHeading": {
                "key": "extra"
            },
            "key": "node"
        },
        {
            "subItemsHeading": {
                "valueType": "text",
                "key": "cause"
            },
            "valueType": "numeric",
            "key": "score",
            "label": "Layout shift score",
            "granularity": 0.001
        }
    ]
}
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](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

Detaylar
{
    "type": "opportunity",
    "sortedBy": [
        "wastedBytes"
    ],
    "debugData": {
        "type": "debugdata",
        "metricSavings": {
            "FCP": 150,
            "LCP": 0
        }
    },
    "headings": [
        {
            "valueType": "url",
            "label": "URL",
            "key": "url"
        },
        {
            "label": "Transfer Size",
            "key": "totalBytes",
            "valueType": "bytes"
        },
        {
            "label": "Est Savings",
            "key": "wastedBytes",
            "valueType": "bytes"
        }
    ],
    "overallSavingsBytes": 45294,
    "items": [
        {
            "totalBytes": 33120,
            "url": "https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css",
            "wastedPercent": 94.80058906620984,
            "wastedBytes": 31398
        },
        {
            "wastedPercent": 66.66666666666666,
            "url": "https:\/\/inboxajans.com\/build\/assets\/main-BrH5JjMY.css",
            "wastedBytes": 13896,
            "totalBytes": 20844
        }
    ],
    "overallSavingsMs": 0
}
`<frame>` or `<iframe>` elements have a title

Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.11/frame-title).

Document has a valid `rel=canonical`

Canonical links suggest which URL to show in search results. [Learn more about canonical links](https://developer.chrome.com/docs/lighthouse/seo/canonical/).

`<video>` elements contain a `<track>` element with `[kind="captions"]`

When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.11/video-caption).

Interactive elements indicate their purpose and state

Interactive elements, such as links and buttons, should indicate their state and be distinguishable from non-interactive elements. [Learn how to decorate interactive elements with affordance hints](https://developer.chrome.com/docs/lighthouse/accessibility/interactive-element-affordance/).

ARIA IDs are unique

The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria).

Render blocking requests

Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path.

Detaylar
{
    "items": [
        {
            "url": "https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css",
            "totalBytes": 34325,
            "wastedMs": 1054
        }
    ],
    "type": "table",
    "headings": [
        {
            "label": "URL",
            "valueType": "url",
            "key": "url"
        },
        {
            "valueType": "bytes",
            "key": "totalBytes",
            "label": "Transfer Size"
        },
        {
            "key": "wastedMs",
            "label": "Duration",
            "valueType": "timespanMs"
        }
    ]
}
HTML5 landmark elements are used to improve navigation

Landmark elements (`<main>`, `<nav>`, etc.) are used to improve the keyboard navigation of the page for assistive technology. [Learn more about landmark elements](https://developer.chrome.com/docs/lighthouse/accessibility/use-landmarks/).

Interactive controls are keyboard focusable

Custom interactive controls are keyboard focusable and display a focus indicator. [Learn how to make custom controls focusable](https://developer.chrome.com/docs/lighthouse/accessibility/focusable-controls/).

Form elements do not have associated labels

Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.11/label).

Detaylar
{
    "items": [
        {
            "node": {
                "path": "1,HTML,1,BODY,13,SECTION,0,DIV,0,DIV,3,DIV,0,DIV,3,FORM,2,INPUT",
                "lhId": "1-3-INPUT",
                "boundingRect": {
                    "right": -9978,
                    "left": -9986,
                    "height": 6,
                    "bottom": 9303,
                    "width": 8,
                    "top": 9297
                },
                "nodeLabel": "div.col-lg-6 > div.collaboration-form-container > form#collaborationForm > input.honeypot",
                "explanation": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
                "snippet": "<input type=\"text\" name=\"website\" class=\"honeypot\" tabindex=\"-1\" autocomplete=\"off\">",
                "type": "node",
                "selector": "div.col-lg-6 > div.collaboration-form-container > form#collaborationForm > input.honeypot"
            }
        }
    ],
    "headings": [
        {
            "subItemsHeading": {
                "valueType": "node",
                "key": "relatedNode"
            },
            "key": "node",
            "valueType": "node",
            "label": "Failing Elements"
        }
    ],
    "debugData": {
        "impact": "critical",
        "tags": [
            "cat.forms",
            "wcag2a",
            "wcag412",
            "section508",
            "section508.22.n",
            "TTv5",
            "TT5.c",
            "EN-301-549",
            "EN-9.4.1.2",
            "ACT",
            "RGAAv4",
            "RGAA-11.1.1"
        ],
        "type": "debugdata"
    },
    "type": "table"
}
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](https://dequeuniversity.com/rules/axe/4.11/color-contrast).

Detaylar
{
    "items": [
        {
            "node": {
                "selector": "div#cookieBanner > div.container > div.cookie-actions > button#cookieAccept",
                "path": "1,HTML,1,BODY,29,DIV,0,DIV,1,DIV,1,BUTTON",
                "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.24 (foreground color: #ffffff, background color: #4f8bff, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1",
                "nodeLabel": "Kabul Et",
                "type": "node",
                "snippet": "<button id=\"cookieAccept\" class=\"btn btn-primary\">",
                "boundingRect": {
                    "left": 111,
                    "width": 87,
                    "height": 42,
                    "top": 765,
                    "right": 199,
                    "bottom": 807
                },
                "lhId": "1-1-BUTTON"
            }
        }
    ],
    "headings": [
        {
            "key": "node",
            "valueType": "node",
            "subItemsHeading": {
                "valueType": "node",
                "key": "relatedNode"
            },
            "label": "Failing Elements"
        }
    ],
    "type": "table",
    "debugData": {
        "type": "debugdata",
        "tags": [
            "cat.color",
            "wcag2aa",
            "wcag143",
            "TTv5",
            "TT13.c",
            "EN-301-549",
            "EN-9.1.4.3",
            "ACT",
            "RGAAv4",
            "RGAA-3.2.1"
        ],
        "impact": "serious"
    }
}
`<input type="image">` elements have `[alt]` text

When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.11/input-image-alt).

`button`, `link`, and `menuitem` elements have accessible names

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.11/aria-command-name).

`[accesskey]` values are unique

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.11/accesskeys).

Buttons do not have an accessible name

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.11/button-name).

Detaylar
{
    "type": "table",
    "debugData": {
        "tags": [
            "cat.name-role-value",
            "wcag2a",
            "wcag412",
            "section508",
            "section508.22.a",
            "TTv5",
            "TT6.a",
            "EN-301-549",
            "EN-9.4.1.2",
            "ACT",
            "RGAAv4",
            "RGAA-11.9.1"
        ],
        "type": "debugdata",
        "impact": "critical"
    },
    "items": [
        {
            "node": {
                "snippet": "<button class=\"mobile-menu-toggle d-lg-none\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#mobileMenu\" aria-expanded=\"false\">",
                "type": "node",
                "boundingRect": {
                    "bottom": 58,
                    "height": 30,
                    "right": 387,
                    "width": 36,
                    "top": 28,
                    "left": 351
                },
                "nodeLabel": "nav#glassPillNav > div.glass-pill-container > div.glass-pill-content > button.mobile-menu-toggle",
                "lhId": "1-0-BUTTON",
                "selector": "nav#glassPillNav > div.glass-pill-container > div.glass-pill-content > button.mobile-menu-toggle",
                "path": "1,HTML,1,BODY,0,NAV,0,DIV,0,DIV,7,BUTTON",
                "explanation": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
        }
    ],
    "headings": [
        {
            "key": "node",
            "subItemsHeading": {
                "valueType": "node",
                "key": "relatedNode"
            },
            "label": "Failing Elements",
            "valueType": "node"
        }
    ]
}
The document does not use `<meta http-equiv="refresh">`

Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-refresh).

No form fields have multiple labels

Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels).

Definition list items are wrapped in `<dl>` elements

Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/dlitem).

The page has a logical tab order

Tabbing through the page follows the visual layout. Users cannot focus elements that are offscreen. [Learn more about logical tab ordering](https://developer.chrome.com/docs/lighthouse/accessibility/logical-tab-order/).

The page contains a heading, skip link, or landmark region

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.11/bypass).

`<td>` elements in a large `<table>` have one or more table headers.

Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (3 or more cells in width and height) have an associated table header may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/td-has-header).

`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.

If the webpage does not specify a consistent language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch).

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](https://developer.chrome.com/docs/performance/insights/image-delivery)

Detaylar
{
    "items": [
        {
            "node": {
                "boundingRect": {
                    "top": 7847,
                    "bottom": 7897,
                    "right": 127,
                    "left": 93,
                    "width": 33,
                    "height": 50
                },
                "path": "1,HTML,1,BODY,12,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
                "lhId": "page-0-IMG",
                "type": "node",
                "selector": "div.timeline-card > div.timeline-header > div.timeline-logo > img",
                "nodeLabel": "Kart Elimde logosu",
                "snippet": "<img src=\"https:\/\/inboxajans.com\/uploads\/products\/prd-8e8b4d18-dc83-4f95-8acd-ebd70a…\" alt=\"Kart Elimde logosu\" style=\"height: 100%\">"
            },
            "subItems": {
                "type": "subitems",
                "items": [
                    {
                        "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size.",
                        "wastedBytes": 2478118
                    },
                    {
                        "wastedBytes": 2731371,
                        "reason": "This image file is larger than it needs to be (1024x1536) for its displayed dimensions (58x88). Use responsive images to reduce the image download size."
                    }
                ]
            },
            "url": "https:\/\/inboxajans.com\/uploads\/products\/prd-8e8b4d18-dc83-4f95-8acd-ebd70a8fac28.png",
            "wastedBytes": 2739411,
            "totalBytes": 2740262
        },
        {
            "wastedBytes": 1736870,
            "subItems": {
                "items": [
                    {
                        "wastedBytes": 1476640,
                        "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size."
                    },
                    {
                        "wastedBytes": 1726088,
                        "reason": "This image file is larger than it needs to be (1536x1024) for its displayed dimensions (131x88). Use responsive images to reduce the image download size."
                    }
                ],
                "type": "subitems"
            },
            "node": {
                "nodeLabel": "Hazır Site Yaptır logosu",
                "lhId": "page-1-IMG",
                "selector": "div.timeline-card > div.timeline-header > div.timeline-logo > img",
                "snippet": "<img src=\"https:\/\/inboxajans.com\/uploads\/products\/prd-82bc47f8-e681-48bf-a1d6-bbc605…\" alt=\"Hazır Site Yaptır logosu\" style=\"height: 100%\">",
                "path": "1,HTML,1,BODY,12,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
                "boundingRect": {
                    "height": 50,
                    "width": 75,
                    "bottom": 7559,
                    "top": 7509,
                    "left": 73,
                    "right": 148
                },
                "type": "node"
            },
            "url": "https:\/\/inboxajans.com\/uploads\/products\/prd-82bc47f8-e681-48bf-a1d6-bbc60572a382.png",
            "totalBytes": 1738784
        },
        {
            "node": {
                "selector": "div.bento-grid > div.bento-item > div.bento-image > img",
                "type": "node",
                "lhId": "page-2-IMG",
                "boundingRect": {
                    "height": 289,
                    "width": 386,
                    "left": 13,
                    "bottom": 7112,
                    "right": 399,
                    "top": 6823
                },
                "nodeLabel": "E-ticaret Platformu",
                "snippet": "<img src=\"https:\/\/inboxajans.com\/images\/bg-2.webp\" alt=\"E-ticaret Platformu\">",
                "path": "1,HTML,1,BODY,10,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,8,DIV,0,DIV,0,IMG"
            },
            "wastedBytes": 283204,
            "totalBytes": 301644,
            "subItems": {
                "type": "subitems",
                "items": [
                    {
                        "reason": "This image file is larger than it needs to be (2732x2048) for its displayed dimensions (676x506). Use responsive images to reduce the image download size.",
                        "wastedBytes": 283204
                    }
                ]
            },
            "url": "https:\/\/inboxajans.com\/images\/bg-2.webp"
        },
        {
            "wastedBytes": 51285,
            "subItems": {
                "items": [
                    {
                        "reason": "This image file is larger than it needs to be (1500x1125) for its displayed dimensions (676x507). Use responsive images to reduce the image download size.",
                        "wastedBytes": 51285
                    }
                ],
                "type": "subitems"
            },
            "totalBytes": 64332,
            "url": "https:\/\/inboxajans.com\/images\/bg-3.webp",
            "node": {
                "path": "1,HTML,1,BODY,10,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,7,DIV,0,DIV,0,IMG",
                "lhId": "page-3-IMG",
                "type": "node",
                "snippet": "<img src=\"https:\/\/inboxajans.com\/images\/bg-3.webp\" alt=\"E-ticaret Platformu\">",
                "boundingRect": {
                    "top": 6515,
                    "bottom": 6805,
                    "left": 13,
                    "height": 290,
                    "width": 386,
                    "right": 399
                },
                "selector": "div.bento-grid > div.bento-item > div.bento-image > img",
                "nodeLabel": "E-ticaret Platformu"
            }
        }
    ],
    "debugData": {
        "wastedBytes": 4810770,
        "type": "debugdata"
    },
    "type": "table",
    "headings": [
        {
            "valueType": "node",
            "key": "node"
        },
        {
            "key": "url",
            "valueType": "url",
            "subItemsHeading": {
                "key": "reason",
                "valueType": "text"
            },
            "label": "URL"
        },
        {
            "valueType": "bytes",
            "label": "Resource Size",
            "key": "totalBytes"
        },
        {
            "valueType": "bytes",
            "label": "Est Savings",
            "key": "wastedBytes",
            "subItemsHeading": {
                "valueType": "bytes",
                "key": "wastedBytes"
            }
        }
    ]
}
All heading elements contain content.

A heading with no content or inaccessible text prevent screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.11/empty-heading).

Network dependency tree

[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.

Detaylar
{
    "items": [
        {
            "value": {
                "longestChain": {
                    "duration": 838
                },
                "chains": {
                    "70D1DBBF9DB9893A320B0BE6C6C6669B": {
                        "children": {
                            "53.3": {
                                "children": [],
                                "transferSize": 34325,
                                "isLongest": true,
                                "navStartToEndTime": 838,
                                "url": "https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css"
                            },
                            "53.14": {
                                "children": [],
                                "transferSize": 24753,
                                "navStartToEndTime": 739,
                                "url": "https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js"
                            }
                        },
                        "transferSize": 17140,
                        "isLongest": true,
                        "url": "https:\/\/inboxajans.com\/",
                        "navStartToEndTime": 733
                    }
                },
                "type": "network-tree"
            },
            "type": "list-section"
        },
        {
            "value": {
                "type": "text",
                "value": "no origins were preconnected"
            },
            "title": "Preconnected origins",
            "description": "[preconnect](https:\/\/developer.chrome.com\/docs\/lighthouse\/performance\/uses-rel-preconnect\/) hints help the browser establish a connection earlier in the page load, saving time when the first request for that origin is made. The following are the origins that the page preconnected to.",
            "type": "list-section"
        },
        {
            "value": {
                "type": "text",
                "value": "No additional origins are good candidates for preconnecting"
            },
            "description": "Add [preconnect](https:\/\/developer.chrome.com\/docs\/lighthouse\/performance\/uses-rel-preconnect\/) hints to your most important origins, but try to use no more than 4.",
            "type": "list-section",
            "title": "Preconnect candidates"
        }
    ],
    "type": "list"
}
Skip links are focusable.

Including a skip link can help users skip to the main content to save time. [Learn more about skip links](https://dequeuniversity.com/rules/axe/4.11/skip-link).

User focus is not accidentally trapped in a region

A user can tab into and out of any control or region without accidentally trapping their focus. [Learn how to avoid focus traps](https://developer.chrome.com/docs/lighthouse/accessibility/focus-traps/).

The user's focus is directed to new content added to the page

If new content, such as a dialog, is added to the page, the user's focus is directed to it. [Learn how to direct focus to new content](https://developer.chrome.com/docs/lighthouse/accessibility/managed-focus/).

Image elements do not have `[alt]` attributes that are redundant text.

Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt).

Offscreen content is hidden from assistive technology

Offscreen content is hidden with display: none or aria-hidden=true. [Learn how to properly hide offscreen content](https://developer.chrome.com/docs/lighthouse/accessibility/offscreen-content-hidden/).

Document does not have a main landmark.

One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main).

Detaylar
{
    "debugData": {
        "tags": [
            "cat.semantics",
            "best-practice"
        ],
        "type": "debugdata",
        "impact": "moderate"
    },
    "headings": [
        {
            "subItemsHeading": {
                "valueType": "node",
                "key": "relatedNode"
            },
            "label": "Failing Elements",
            "valueType": "node",
            "key": "node"
        }
    ],
    "items": [
        {
            "node": {
                "lhId": "1-4-HTML",
                "explanation": "Fix all of the following:\n  Document does not have a main landmark",
                "selector": "html",
                "path": "1,HTML",
                "nodeLabel": "html",
                "type": "node",
                "snippet": "<html lang=\"tr\">",
                "boundingRect": {
                    "width": 412,
                    "right": 412,
                    "bottom": 12379,
                    "left": 0,
                    "top": 0,
                    "height": 12379
                }
            }
        }
    ],
    "type": "table"
}
Custom controls have ARIA roles

Custom interactive controls have appropriate ARIA roles. [Learn how to add roles to custom controls](https://developer.chrome.com/docs/lighthouse/accessibility/custom-control-roles/).

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](https://dequeuniversity.com/rules/axe/4.11/heading-order).

Detaylar
{
    "debugData": {
        "type": "debugdata",
        "impact": "moderate",
        "tags": [
            "cat.semantics",
            "best-practice"
        ]
    },
    "items": [
        {
            "node": {
                "lhId": "1-2-H4",
                "type": "node",
                "path": "1,HTML,1,BODY,13,SECTION,0,DIV,0,DIV,1,DIV,0,DIV,7,DIV,0,H4",
                "selector": "div.col-lg-6 > div.collaboration-info > div.alternative-channels > h4",
                "nodeLabel": "Alternatif İletişim",
                "snippet": "<h4>",
                "boundingRect": {
                    "left": 12,
                    "bottom": 8894,
                    "width": 388,
                    "height": 22,
                    "top": 8873,
                    "right": 400
                },
                "explanation": "Fix any of the following:\n  Heading order invalid"
            }
        }
    ],
    "type": "table",
    "headings": [
        {
            "key": "node",
            "valueType": "node",
            "label": "Failing Elements",
            "subItemsHeading": {
                "valueType": "node",
                "key": "relatedNode"
            }
        }
    ]
}
Redirects HTTP traffic to HTTPS

Make sure that you redirect all HTTP traffic to HTTPS in order to enable secure web features for all your users. [Learn more](https://developer.chrome.com/docs/lighthouse/pwa/redirects-http/).

Identical links have the same purpose.

Links with the same destination should have the same description, to help users understand the link's purpose and decide whether to follow it. [Learn more about identical links](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose).

📂 Kategori Bazlı Hatalar

OPPORTUNITIES

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](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

Minify CSS

Minifying CSS files can reduce network payload sizes. [Learn how to minify CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css/).

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](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

Minify JavaScript

Minifying JavaScript files can reduce payload sizes and script parse time. [Learn how to minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/).

Avoid multiple page redirects

Redirects introduce additional delays before the page can be loaded. [Learn how to avoid page redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects/).

Initial server response time was short

Keep the server response time for the main document short because all other requests depend on it. [Learn more about the Time to First Byte metric](https://developer.chrome.com/docs/lighthouse/performance/time-to-first-byte/).

FAILED AUDITS

ARIA `progressbar` elements have accessible names

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.11/aria-progressbar-name).

Uses ARIA roles only on compatible elements

Many HTML elements can only be assigned certain ARIA roles. Using ARIA roles where they are not allowed can interfere with the accessibility of the web page. [Learn more about ARIA roles](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role).

`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.

Screen readers have features to make navigating tables easier. Ensuring table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells).

`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.

When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/definition-list).

LCP request discovery

[Optimize LCP](https://developer.chrome.com/docs/performance/insights/lcp-discovery) by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading

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](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

Structured data is valid

Run the [Structured Data Testing Tool](https://developers.google.com/search/docs/appearance/structured-data/) to validate structured data. [Learn more about Structured Data](https://developer.chrome.com/docs/lighthouse/seo/structured-data/).

Elements with the `role=text` attribute do not have focusable descendents.

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.11/aria-text).

INP breakdown

Start investigating [how to improve INP](https://developer.chrome.com/docs/performance/insights/inp-breakdown) by looking at the longest subpart.

ARIA `meter` elements have accessible names

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.11/aria-meter-name).

User Timing marks and measures

Consider instrumenting your app with the User Timing API to measure your app's real-world performance during key user experiences. [Learn more about User Timing marks](https://developer.chrome.com/docs/lighthouse/performance/user-timings/).

`[lang]` attributes have a valid value

Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/valid-lang).

Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.

Screen readers have features to make navigating tables easier. Ensuring `<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr).

`<object>` elements have alternate text

Screen readers cannot translate non-text content. Adding alternate text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.11/object-alt).

ARIA input fields have accessible names

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.11/aria-input-field-name).

Visual order on the page follows DOM order

DOM order matches the visual order, improving navigation for assistive technology. [Learn more about DOM and visual ordering](https://developer.chrome.com/docs/lighthouse/accessibility/visual-order-follows-dom/).

ARIA `tooltip` elements have accessible names

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.11/aria-tooltip-name).

Use efficient cache lifetimes

A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).

Detected JavaScript libraries

All front-end JavaScript libraries detected on the page. [Learn more about this JavaScript library detection diagnostic audit](https://developer.chrome.com/docs/lighthouse/best-practices/js-libraries/).

Custom controls have associated labels

Custom interactive controls have associated labels, provided by aria-label or aria-labelledby. [Learn more about custom controls and labels](https://developer.chrome.com/docs/lighthouse/accessibility/custom-controls-labels/).

Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.

Screen readers have features to make navigating tables easier. Ensuring that tables use the actual caption element instead of cells with the `[colspan]` attribute may improve the experience for screen reader users. [Learn more about captions](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption).

`[role]`s are contained by their required parent element

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.11/aria-required-parent).

Select elements have associated label elements.

Form elements without effective labels can create frustrating experiences for screen reader users. [Learn more about the `select` element](https://dequeuniversity.com/rules/axe/4.11/select-name).

ARIA `treeitem` elements have accessible names

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.11/aria-treeitem-name).

Tables have different content in the summary attribute and `<caption>`.

The summary attribute should describe the table structure, while `<caption>` should have the onscreen title. Accurate table mark-up helps users of screen readers. [Learn more about summary and caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name).

Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.

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.11/aria-required-children).

Input buttons have discernible text.

Adding discernable and accessible text to input buttons may help screen reader users understand the purpose of the input button. [Learn more about input buttons](https://dequeuniversity.com/rules/axe/4.11/input-button-name).

ARIA toggle fields have accessible names

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.11/aria-toggle-field-name).

Elements with `role="dialog"` or `role="alertdialog"` have accessible names.

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.11/aria-dialog-name).

Avoid large layout shifts

These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these 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)

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](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

`<frame>` or `<iframe>` elements have a title

Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.11/frame-title).

Document has a valid `rel=canonical`

Canonical links suggest which URL to show in search results. [Learn more about canonical links](https://developer.chrome.com/docs/lighthouse/seo/canonical/).

`<video>` elements contain a `<track>` element with `[kind="captions"]`

When a video provides a caption it is easier for deaf and hearing impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.11/video-caption).

Interactive elements indicate their purpose and state

Interactive elements, such as links and buttons, should indicate their state and be distinguishable from non-interactive elements. [Learn how to decorate interactive elements with affordance hints](https://developer.chrome.com/docs/lighthouse/accessibility/interactive-element-affordance/).

ARIA IDs are unique

The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria).

Render blocking requests

Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path.

HTML5 landmark elements are used to improve navigation

Landmark elements (`<main>`, `<nav>`, etc.) are used to improve the keyboard navigation of the page for assistive technology. [Learn more about landmark elements](https://developer.chrome.com/docs/lighthouse/accessibility/use-landmarks/).

Interactive controls are keyboard focusable

Custom interactive controls are keyboard focusable and display a focus indicator. [Learn how to make custom controls focusable](https://developer.chrome.com/docs/lighthouse/accessibility/focusable-controls/).

Form elements do not have associated labels

Labels ensure that form controls are announced properly by assistive technologies, like screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.11/label).

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](https://dequeuniversity.com/rules/axe/4.11/color-contrast).

`<input type="image">` elements have `[alt]` text

When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.11/input-image-alt).

`button`, `link`, and `menuitem` elements have accessible names

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.11/aria-command-name).

`[accesskey]` values are unique

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.11/accesskeys).

Buttons do not have an accessible name

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.11/button-name).

The document does not use `<meta http-equiv="refresh">`

Users do not expect a page to refresh automatically, and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.11/meta-refresh).

No form fields have multiple labels

Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels).

Definition list items are wrapped in `<dl>` elements

Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.11/dlitem).

The page has a logical tab order

Tabbing through the page follows the visual layout. Users cannot focus elements that are offscreen. [Learn more about logical tab ordering](https://developer.chrome.com/docs/lighthouse/accessibility/logical-tab-order/).

The page contains a heading, skip link, or landmark region

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.11/bypass).

`<td>` elements in a large `<table>` have one or more table headers.

Screen readers have features to make navigating tables easier. Ensuring that `<td>` elements in a large table (3 or more cells in width and height) have an associated table header may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.11/td-has-header).

`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.

If the webpage does not specify a consistent language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch).

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](https://developer.chrome.com/docs/performance/insights/image-delivery)

All heading elements contain content.

A heading with no content or inaccessible text prevent screen reader users from accessing information on the page's structure. [Learn more about headings](https://dequeuniversity.com/rules/axe/4.11/empty-heading).

Network dependency tree

[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.

Skip links are focusable.

Including a skip link can help users skip to the main content to save time. [Learn more about skip links](https://dequeuniversity.com/rules/axe/4.11/skip-link).

User focus is not accidentally trapped in a region

A user can tab into and out of any control or region without accidentally trapping their focus. [Learn how to avoid focus traps](https://developer.chrome.com/docs/lighthouse/accessibility/focus-traps/).

The user's focus is directed to new content added to the page

If new content, such as a dialog, is added to the page, the user's focus is directed to it. [Learn how to direct focus to new content](https://developer.chrome.com/docs/lighthouse/accessibility/managed-focus/).

Image elements do not have `[alt]` attributes that are redundant text.

Informative elements should aim for short, descriptive alternative text. Alternative text that is exactly the same as the text adjacent to the link or image is potentially confusing for screen reader users, because the text will be read twice. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt).

Offscreen content is hidden from assistive technology

Offscreen content is hidden with display: none or aria-hidden=true. [Learn how to properly hide offscreen content](https://developer.chrome.com/docs/lighthouse/accessibility/offscreen-content-hidden/).

Document does not have a main landmark.

One main landmark helps screen reader users navigate a web page. [Learn more about landmarks](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main).

Custom controls have ARIA roles

Custom interactive controls have appropriate ARIA roles. [Learn how to add roles to custom controls](https://developer.chrome.com/docs/lighthouse/accessibility/custom-control-roles/).

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](https://dequeuniversity.com/rules/axe/4.11/heading-order).

Redirects HTTP traffic to HTTPS

Make sure that you redirect all HTTP traffic to HTTPS in order to enable secure web features for all your users. [Learn more](https://developer.chrome.com/docs/lighthouse/pwa/redirects-http/).

Identical links have the same purpose.

Links with the same destination should have the same description, to help users understand the link's purpose and decide whether to follow it. [Learn more about identical links](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose).