Landemærker bør have en unik rolle eller en unik kombination af rolle, label og title (dvs. tilgængeligt navn)
Når en side har flere områder af samme type, for eksempel to navigationsmenuer, kan skærmlæsere kun skelne dem fra hinanden på deres navne. Uden unikke navne hører kunderne »navigation« to gange og kan ikke se forskel på hovedmenuen, menuen i footeren og brødkrummestien.
- Regel-id
- landmark-unique
- Kilde
- axe-core 4.13.0
- Alvorlighed
- Moderat
- Rettelsesniveau
- ASSISTED
- på Shopify, Shopware, WooCommerce og Magento
- Status
- køres
Hvad kontrollen gør
Sørg for, at landemærker er unikke
Reglen samler sidens landemærker: elementer, hvis role er en landemærkerolle som navigation eller search, samt <header>-, <footer>-, <nav>-, <main>-, <aside>-, <form>- og <section>-elementer, hvis beregnede rolle er et landemærke. Uden en role-attribut tæller et <section> eller et <form> kun, når aria-label eller aria-labelledby giver det et navn, og et <header> eller <footer> inde i <article>, <aside>, <nav>, <section> eller <main> tæller ikke. Landemærker, der er skjult for hjælpemidler, udelades.
axe-core sammenligner hvert landemærkes rolle og tilgængelige navn, omsat til små bogstaver, på tværs af siden og dens iframes. To landemærker med samme rolle fejler, når ingen af dem har et navn, eller når deres navne er ens, så »Menu« og »menu« regnes som ens. axe-core rapporterer ét landemærke fra hver sådan gruppe som fejlen; de øvrige optræder kun som tilknyttede elementer til den fejl.
Denne regel for god praksis er ikke knyttet til noget WCAG-succeskriterium. Validiscans scanner kører den adskilt fra reglerne for overensstemmelse, beholder kun dens fejl og tæller ikke dens fund med i fremskridtet i udbedringen. Reglen vurderer ikke, om navnene hjælper en kunde med at skelne landemærkerne fra hinanden.
Sådan retter du det
Giv landemærker med samme rolle forskellige tilgængelige navne med aria-label eller aria-labelledby, for eksempel aria-label="Hovedmenu" og aria-label="Footermenu" på to <nav>-elementer. Brug korte, oversatte navne.
WCAG-succeskriterier
God praksis: ikke knyttet til et succeskriterium i WCAG.
Opskrifter, der angiver denne regel
Reglen har niveau ASSISTED. I et projekt følger et fund af reglen ASSISTED-forløbet, og disse opskrifter anvendes ikke på det.
Shopify: opskrift skip-link-main
Vis før og efter (1)
assets/base.css.liquid Ændringer i assets/base.css.liquid: 30 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 1866 | 1866 | } | |
| 1867 | 1867 | ||
| 1868 | 1868 | /* ----------------------------------------------------------------- motion */ | |
| 1869 | Tilføjet | ||
| 1870 | Tilføjet | /* validiscan:skip-link-main */ | |
| 1871 | Tilføjet | .skip-to-content-link:not(:focus) { | |
| 1872 | Tilføjet | position: absolute !important; | |
| 1873 | Tilføjet | overflow: hidden; | |
| 1874 | Tilføjet | width: 1px; | |
| 1875 | Tilføjet | height: 1px; | |
| 1876 | Tilføjet | margin: -1px; | |
| 1877 | Tilføjet | padding: 0; | |
| 1878 | Tilføjet | border: 0; | |
| 1879 | Tilføjet | clip: rect(0 0 0 0); | |
| 1880 | Tilføjet | white-space: nowrap; | |
| 1881 | Tilføjet | } | |
| 1882 | Tilføjet | ||
| 1883 | Tilføjet | .skip-to-content-link:focus { | |
| 1884 | Tilføjet | z-index: 9999; | |
| 1885 | Tilføjet | position: fixed !important; | |
| 1886 | Tilføjet | top: 0.5rem; | |
| 1887 | Tilføjet | left: 0.5rem; | |
| 1888 | Tilføjet | overflow: visible; | |
| 1889 | Tilføjet | width: auto; | |
| 1890 | Tilføjet | height: auto; | |
| 1891 | Tilføjet | margin: 0; | |
| 1892 | Tilføjet | padding: 0.75rem 1.25rem; | |
| 1893 | Tilføjet | clip: auto; | |
| 1894 | Tilføjet | background-color: #ffffff; | |
| 1895 | Tilføjet | color: #121212; | |
| 1896 | Tilføjet | text-decoration: underline; | |
| 1897 | Tilføjet | } | |
| 1898 | Tilføjet | /* /validiscan:skip-link-main */ |
layout/checkout.liquid Ændringer i layout/checkout.liquid: 4 tilføjet, 3 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 18 | 18 | </head> | |
| 19 | 19 | ||
| 20 | 20 | <body class="template-checkout"> | |
| 21 | Tilføjet | <a class="skip-to-content-link" href="#MainContent">{{ 'accessibility.skip_to_text' | t }}</a> | |
| 21 | 22 | <header class="checkout-header"> | |
| 22 | 23 | <div class="page-width checkout-header__inner"> | |
| 23 | 24 | <a href="{{ routes.root_url }}" class="checkout-header__logo"><img src="{{ 'logo.svg' | asset_url }}" width="140" height="32"></a> | |
| 24 | Fjernet | <nav class="checkout-breadcrumb"> | |
| 25 | Tilføjet | <nav class="checkout-breadcrumb" aria-label="{{ 'accessibility.breadcrumbs' | t | escape }}"> | |
| 25 | 26 | <ol class="checkout-breadcrumb__list" role="list"> | |
| 26 | 27 | <li><a href="{{ routes.cart_url }}" class="checkout-breadcrumb__link">Cart</a></li> | |
| 27 | 28 | <li><span class="checkout-breadcrumb__current">Information</span></li> | |
| 31 | 32 | </nav> | |
| 32 | 33 | </div> | |
| 33 | 34 | </header> | |
| 34 | Fjernet | <div class="main checkout" id="MainContent"> | |
| 35 | Tilføjet | <main class="main checkout" id="MainContent" tabindex="-1"> | |
| 35 | 36 | {{ content_for_layout }} | |
| 36 | Fjernet | </div> | |
| 37 | Tilføjet | </main> | |
| 37 | 38 | ||
| 38 | 39 | <footer class="checkout-footer"> | |
| 39 | 40 | <div class="page-width"> |
layout/theme.focused.liquid Ændringer i layout/theme.focused.liquid: 1 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 22 | 22 | </head> | |
| 23 | 23 | ||
| 24 | 24 | <body class="gradient template-{{ template.name | handleize }} layout-focused"> | |
| 25 | Tilføjet | <a class="skip-to-content-link" href="#MainContent">{{ 'accessibility.skip_to_text' | t }}</a> | |
| 25 | 26 | {% section 'header' %} | |
| 26 | 27 | ||
| 27 | 28 | <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> |
layout/theme.liquid Ændringer i layout/theme.liquid: 1 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 28 | 28 | </head> | |
| 29 | 29 | ||
| 30 | 30 | <body class="gradient template-{{ template.name | handleize }}"> | |
| 31 | Tilføjet | <a class="skip-to-content-link" href="#MainContent">{{ 'accessibility.skip_to_text' | t }}</a> | |
| 31 | 32 | ||
| 32 | 33 | {% sections 'header-group' %} | |
| 33 | 34 |
locales/en.default.json Ændringer i locales/en.default.json: 3 tilføjet, 1 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 34 | 34 | "total_reviews": "{{ count }} reviews", | |
| 35 | 35 | "link_messages": { | |
| 36 | 36 | "new_window": "Opens in a new window." | |
| 37 | Fjernet | } | |
| 37 | Tilføjet | }, | |
| 38 | Tilføjet | "breadcrumbs": "Breadcrumbs", | |
| 39 | Tilføjet | "mobile_menu": "Mobile menu" | |
| 38 | 40 | }, | |
| 39 | 41 | "sections": { | |
| 40 | 42 | "header": { |
sections/footer.liquid Ændringer i sections/footer.liquid: 1 tilføjet, 1 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 17 | 17 | {%- endform -%} | |
| 18 | 18 | </div> | |
| 19 | 19 | ||
| 20 | Fjernet | <nav class="footer__menus"> | |
| 20 | Tilføjet | <nav class="footer__menus" aria-label="{{ 'sections.footer.menu' | t | escape }}"> | |
| 21 | 21 | {%- for handle in menu_handles %} | |
| 22 | 22 | {%- assign footer_menu = linklists[handle] %} | |
| 23 | 23 | <div class="footer-block footer-block--menu"> |
sections/header.liquid Ændringer i sections/header.liquid: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 11 | 11 | {%- render 'icon', icon: 'menu', size: icon_size -%} | |
| 12 | 12 | </summary> | |
| 13 | 13 | <div class="menu-drawer"> | |
| 14 | Fjernet | <nav class="menu-drawer__navigation"> | |
| 14 | Tilføjet | <nav class="menu-drawer__navigation" aria-label="{{ 'accessibility.mobile_menu' | t | escape }}"> | |
| 15 | 15 | <ul class="menu-drawer__menu list-unstyled" role="list"> | |
| 16 | 16 | {%- for link in menu.links %} | |
| 17 | 17 | <li><a href="{{ link.url }}" class="menu-drawer__menu-item">{{ link.title | escape }}</a></li> | |
| 25 | 25 | <a href="{{ routes.root_url }}" class="header__heading-link"><img src="{{ 'logo.svg' | asset_url }}" width="{{ settings.logo_width }}" height="32" class="header__heading-logo"></a> | |
| 26 | 26 | {% if logo_is_heading %}</h1>{% else %}</div>{% endif %} | |
| 27 | 27 | ||
| 28 | Fjernet | <nav class="header__inline-menu"> | |
| 28 | Tilføjet | <nav class="header__inline-menu" aria-label="{{ 'sections.header.main_menu' | t | escape }}"> | |
| 29 | 29 | <ul class="list-menu list-menu--inline" role="list"> | |
| 30 | 30 | {%- for link in menu.links %} | |
| 31 | 31 | <li> |
WooCommerce: opskrift skip-link-main
Vis før og efter (1)
404.php Ændringer i 404.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 9 | 9 | ?> | |
| 10 | 10 | ||
| 11 | 11 | <div id="primary" class="content-area"> | |
| 12 | Fjernet | <div id="main" class="site-main"> | |
| 12 | Tilføjet | <main id="main" class="site-main"> | |
| 13 | 13 | <div class="error-404 not-found"> | |
| 14 | 14 | <div class="page-content"> | |
| 15 | 15 | <header class="page-header"> | |
| 22 | 22 | </section> | |
| 23 | 23 | </div> | |
| 24 | 24 | </div> | |
| 25 | Fjernet | </div><!-- #main --> | |
| 25 | Tilføjet | </main><!-- #main --> | |
| 26 | 26 | </div><!-- #primary --> | |
| 27 | 27 | ||
| 28 | 28 | <?php |
archive-product.php Ændringer i archive-product.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 22 | 22 | ||
| 23 | 23 | <div id="primary" class="content-area"> | |
| 24 | 24 | <?php // VALIDISCAN-SEED vs-headings-landmarks + region: <div> instead of <main>. ?> | |
| 25 | Fjernet | <div id="main" class="site-main"> | |
| 25 | Tilføjet | <main id="main" class="site-main"> | |
| 26 | 26 | ||
| 27 | 27 | <header class="woocommerce-products-header"> | |
| 28 | 28 | <h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1> | |
| 46 | 46 | <?php do_action( 'woocommerce_no_products_found' ); ?> | |
| 47 | 47 | <?php endif; ?> | |
| 48 | 48 | ||
| 49 | Fjernet | </div><!-- #main --> | |
| 49 | Tilføjet | </main><!-- #main --> | |
| 50 | 50 | </div><!-- #primary --> | |
| 51 | 51 | ||
| 52 | 52 | <?php // The sidebar div gets role="complementary" but no label (VALIDISCAN-SEED landmark-unique on pages with two). ?> |
front-page.php Ændringer i front-page.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 18 | 18 | ||
| 19 | 19 | <div id="primary" class="content-area"> | |
| 20 | 20 | <?php // VALIDISCAN-SEED vs-headings-landmarks + region: the content wrapper is a <div>, not <main>. ?> | |
| 21 | Fjernet | <div id="main" class="site-main"> | |
| 21 | Tilføjet | <main id="main" class="site-main"> | |
| 22 | 22 | ||
| 23 | 23 | <?php get_template_part( 'template-parts/hero-slider' ); ?> | |
| 24 | 24 | ||
| 62 | 62 | ?> | |
| 63 | 63 | </section> | |
| 64 | 64 | ||
| 65 | Fjernet | </div><!-- #main --> | |
| 65 | Tilføjet | </main><!-- #main --> | |
| 66 | 66 | </div><!-- #primary --> | |
| 67 | 67 | ||
| 68 | 68 | <?php |
functions.php Ændringer i functions.php: 1 tilføjet, 4 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 32 | 32 | * Storefront pieces the child theme does not use. | |
| 33 | 33 | */ | |
| 34 | 34 | function kb_remove_storefront_parts() { | |
| 35 | Fjernet | // VALIDISCAN-SEED vs-headings-landmarks: Storefront's "Skip to navigation / Skip to content" | |
| 36 | Fjernet | // links are removed because "they flash on the first Tab"; nothing replaces them. | |
| 37 | Fjernet | remove_action( 'storefront_before_header', 'storefront_skip_links', 0 ); | |
| 38 | 35 | remove_action( 'storefront_footer', 'storefront_handheld_footer_bar', 999 ); | |
| 39 | 36 | remove_action( 'storefront_header', 'storefront_product_search', 40 ); | |
| 40 | 37 | } | |
| 212 | 209 | $defaults['delimiter'] = '<span class="breadcrumb-separator"> / </span>'; | |
| 213 | 210 | // VALIDISCAN-SEED landmark-unique + vs-headings-landmarks: the breadcrumb <nav> has no aria-label, | |
| 214 | 211 | // like the primary and the footer navigation. | |
| 215 | Fjernet | $defaults['wrap_before'] = '<div class="storefront-breadcrumb"><div class="col-full"><nav class="woocommerce-breadcrumb">'; | |
| 212 | Tilføjet | $defaults['wrap_before'] = '<div class="storefront-breadcrumb"><div class="col-full"><nav class="woocommerce-breadcrumb" aria-label="' . esc_attr__( 'Breadcrumb', 'kestrel-birch' ) . '">'; | |
| 216 | 213 | $defaults['wrap_after'] = '</nav></div></div>'; | |
| 217 | 214 | return $defaults; | |
| 218 | 215 | } |
header-checkout.php Ændringer i header-checkout.php: 1 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 18 | 18 | ||
| 19 | 19 | <body <?php body_class(); ?>> | |
| 20 | 20 | <?php wp_body_open(); ?> | |
| 21 | Tilføjet | <a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', 'kestrel-birch' ); ?></a> | |
| 21 | 22 | ||
| 22 | 23 | <div id="page" class="hfeed site"> | |
| 23 | 24 | <header id="masthead" class="site-header kb-checkout-header" role="banner"> |
header.php Ændringer i header.php: 1 tilføjet, 1 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 74 | 74 | <div class="storefront-primary-navigation"> | |
| 75 | 75 | <div class="col-full"> | |
| 76 | 76 | <?php // VALIDISCAN-SEED landmark-unique + vs-headings-landmarks: the primary <nav> has no aria-label. ?> | |
| 77 | Fjernet | <nav id="site-navigation" class="main-navigation"> | |
| 77 | Tilføjet | <nav id="site-navigation" class="main-navigation" aria-label="<?php esc_attr_e( 'Primary navigation', 'kestrel-birch' ); ?>"> | |
| 78 | 78 | <?php | |
| 79 | 79 | wp_nav_menu( | |
| 80 | 80 | array( |
page-contact.php Ændringer i page-contact.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 24 | 24 | ||
| 25 | 25 | <div id="primary" class="content-area"> | |
| 26 | 26 | <?php // VALIDISCAN-SEED vs-headings-landmarks + region: <div> instead of <main>. ?> | |
| 27 | Fjernet | <div id="main" class="site-main"> | |
| 27 | Tilføjet | <main id="main" class="site-main"> | |
| 28 | 28 | <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> | |
| 29 | 29 | <header class="entry-header"><?php the_title( '<h1 class="entry-title">', '</h1>' ); ?></header> | |
| 30 | 30 | <div class="entry-content"> | |
| 85 | 85 | </div> | |
| 86 | 86 | </div> | |
| 87 | 87 | </article> | |
| 88 | Fjernet | </div><!-- #main --> | |
| 88 | Tilføjet | </main><!-- #main --> | |
| 89 | 89 | </div><!-- #primary --> | |
| 90 | 90 | ||
| 91 | 91 | <?php |
page.php Ændringer i page.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 13 | 13 | ||
| 14 | 14 | <div id="primary" class="content-area"> | |
| 15 | 15 | <?php // VALIDISCAN-SEED vs-headings-landmarks + region: <div> instead of <main>. ?> | |
| 16 | Fjernet | <div id="main" class="site-main"> | |
| 16 | Tilføjet | <main id="main" class="site-main"> | |
| 17 | 17 | ||
| 18 | 18 | <?php | |
| 19 | 19 | while ( have_posts() ) : | |
| 35 | 35 | endwhile; | |
| 36 | 36 | ?> | |
| 37 | 37 | ||
| 38 | Fjernet | </div><!-- #main --> | |
| 38 | Tilføjet | </main><!-- #main --> | |
| 39 | 39 | </div><!-- #primary --> | |
| 40 | 40 | ||
| 41 | 41 | <?php |
search.php Ændringer i search.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 11 | 11 | ||
| 12 | 12 | <div id="primary" class="content-area"> | |
| 13 | 13 | <?php // VALIDISCAN-SEED vs-headings-landmarks + region: <div> instead of <main>. ?> | |
| 14 | Fjernet | <div id="main" class="site-main"> | |
| 14 | Tilføjet | <main id="main" class="site-main"> | |
| 15 | 15 | <header class="woocommerce-products-header"> | |
| 16 | 16 | <h1 class="woocommerce-products-header__title page-title"> | |
| 17 | 17 | <?php | |
| 36 | 36 | <?php else : ?> | |
| 37 | 37 | <?php wc_no_products_found(); ?> | |
| 38 | 38 | <?php endif; ?> | |
| 39 | Fjernet | </div><!-- #main --> | |
| 39 | Tilføjet | </main><!-- #main --> | |
| 40 | 40 | </div><!-- #primary --> | |
| 41 | 41 | ||
| 42 | 42 | <?php |
single-product.php Ændringer i single-product.php: 2 tilføjet, 2 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 13 | 13 | ||
| 14 | 14 | <div id="primary" class="content-area"> | |
| 15 | 15 | <?php // VALIDISCAN-SEED vs-headings-landmarks + region: <div> instead of <main>. ?> | |
| 16 | Fjernet | <div id="main" class="site-main"> | |
| 16 | Tilføjet | <main id="main" class="site-main"> | |
| 17 | 17 | <?php | |
| 18 | 18 | while ( have_posts() ) : | |
| 19 | 19 | the_post(); | |
| 20 | 20 | wc_get_template_part( 'content', 'single-product' ); | |
| 21 | 21 | endwhile; | |
| 22 | 22 | ?> | |
| 23 | Fjernet | </div><!-- #main --> | |
| 23 | Tilføjet | </main><!-- #main --> | |
| 24 | 24 | </div><!-- #primary --> | |
| 25 | 25 | ||
| 26 | 26 | <?php |
Magento: opskrift skip-link-main
Vis før og efter (1)
app/design/frontend/Validiscan/fixture/Magento_Cms/layout/cms_index_index.xml Ændringer i app/design/frontend/Validiscan/fixture/Magento_Cms/layout/cms_index_index.xml: 1 tilføjet, 1 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 6 | 6 | <div>, so the home page has no <main> landmark (and, with the page title hidden by | |
| 7 | 7 | display:none in _theme.less, no h1 either). | |
| 8 | 8 | Fixed variant: keep htmlTag="main"; hide the title visually only (clip), not with display:none. --> | |
| 9 | Fjernet | <referenceContainer name="main.content" htmlTag="div" htmlId="maincontent" htmlClass="page-main"/> | |
| 9 | Tilføjet | <referenceContainer name="main.content" htmlTag="main" htmlId="maincontent" htmlClass="page-main"/> | |
| 10 | 10 | <referenceBlock name="breadcrumbs" remove="true"/> | |
| 11 | 11 | </body> | |
| 12 | 12 | </page> |
app/design/frontend/Validiscan/fixture/Magento_Theme/templates/html/footer.phtml Ændringer i app/design/frontend/Validiscan/fixture/Magento_Theme/templates/html/footer.phtml: 1 tilføjet, 1 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 19 | 19 | ?> | |
| 20 | 20 | <!-- VALIDISCAN-SEEDED list + landmark-unique: list items wrapped in a div inside the ul; second unlabelled nav --> | |
| 21 | 21 | <?php /* Fixed variant: <nav class="footer-nav" aria-label="Footer links"> with the <li> elements directly in the <ul>. */ ?> | |
| 22 | Fjernet | <nav class="footer-nav"> | |
| 22 | Tilføjet | <nav class="footer-nav" aria-label="<?= $escaper->escapeHtmlAttr(__('Footer links')) ?>"> | |
| 23 | 23 | <ul class="footer links"> | |
| 24 | 24 | <div class="footer-col"> | |
| 25 | 25 | <?php foreach ($links as $link): ?> |
app/design/frontend/Validiscan/fixture/Magento_Theme/templates/html/header.phtml Ændringer i app/design/frontend/Validiscan/fixture/Magento_Theme/templates/html/header.phtml: 1 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 13 | 13 | <header class="page-header"> | |
| 14 | 14 | <div class="panel wrapper"> | |
| 15 | 15 | <div class="panel header"> | |
| 16 | Tilføjet | <a class="action skip contentarea" href="#contentarea"><span><?= $escaper->escapeHtml(__('Skip to Content')) ?></span></a> | |
| 16 | 17 | <!-- VALIDISCAN-SEEDED vs-headings-landmarks: the skip link was removed from the header panel --> | |
| 17 | 18 | <?php /* Fixed variant: <a class="action skip contentarea" href="#contentarea"><span>Skip to Content</span></a> */ ?> | |
| 18 | 19 | <?php if ($linksMoved): ?> |
app/design/frontend/Validiscan/fixture/Magento_Theme/templates/html/topmenu.phtml Ændringer i app/design/frontend/Validiscan/fixture/Magento_Theme/templates/html/topmenu.phtml: 1 tilføjet, 1 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 15 | 15 | <div class="section-item-content nav-sections-item-content" id="store.menu" data-role="content"> | |
| 16 | 16 | <!-- VALIDISCAN-SEEDED aria-required-children + landmark-unique: menubar whose children are plain list items; nav without a label --> | |
| 17 | 17 | <?php /* Fixed variant: <nav ... aria-label="Main menu"> and a plain <ul> (no menubar role). */ ?> | |
| 18 | Fjernet | <nav class="navigation" data-action="navigation"> | |
| 18 | Tilføjet | <nav class="navigation" data-action="navigation" aria-label="<?= $escaper->escapeHtmlAttr(__('Main menu')) ?>"> | |
| 19 | 19 | <ul role="menubar" data-mage-init='{"menu":{"responsive":true,"expanded":true,"position":{"my":"left top","at":"left bottom"}}}'> | |
| 20 | 20 | <?php foreach ($items as $item): ?> | |
| 21 | 21 | <li class="level0 <?= $escaper->escapeHtmlAttr($item['class']) ?> level-top"><a href="<?= $escaper->escapeUrl($item['url']) ?>" class="level-top"><span><?= $escaper->escapeHtml($item['label']) ?></span></a></li> |
app/design/frontend/Validiscan/fixture/web/css/source/_theme.less Ændringer i app/design/frontend/Validiscan/fixture/web/css/source/_theme.less: 24 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 1264 | 1264 | height: 18px; | |
| 1265 | 1265 | stroke-width: 3; | |
| 1266 | 1266 | } | |
| 1267 | Tilføjet | ||
| 1268 | Tilføjet | /* validiscan:skip-link-main */ | |
| 1269 | Tilføjet | .action.skip:not(:focus) { | |
| 1270 | Tilføjet | position: absolute; | |
| 1271 | Tilføjet | width: 1px; | |
| 1272 | Tilføjet | height: 1px; | |
| 1273 | Tilføjet | margin: -1px; | |
| 1274 | Tilføjet | padding: 0; | |
| 1275 | Tilføjet | overflow: hidden; | |
| 1276 | Tilføjet | clip: rect(0 0 0 0); | |
| 1277 | Tilføjet | white-space: nowrap; | |
| 1278 | Tilføjet | border: 0; | |
| 1279 | Tilføjet | } | |
| 1280 | Tilføjet | .action.skip:focus { | |
| 1281 | Tilføjet | position: absolute; | |
| 1282 | Tilføjet | top: 4px; | |
| 1283 | Tilføjet | left: 4px; | |
| 1284 | Tilføjet | z-index: 100; | |
| 1285 | Tilføjet | padding: 8px 12px; | |
| 1286 | Tilføjet | background: #fff; | |
| 1287 | Tilføjet | color: #1a1a1a; | |
| 1288 | Tilføjet | text-decoration: underline; | |
| 1289 | Tilføjet | } | |
| 1290 | Tilføjet | /* /validiscan:skip-link-main */ |
app/design/frontend/Validiscan/fixture/web/css/styles-m.css Ændringer i app/design/frontend/Validiscan/fixture/web/css/styles-m.css: 24 tilføjet, 0 fjernet
| Linje før | Linje efter | Ændring | Kode |
|---|---|---|---|
| 1232 | 1232 | height: 18px; | |
| 1233 | 1233 | stroke-width: 3; | |
| 1234 | 1234 | } | |
| 1235 | Tilføjet | ||
| 1236 | Tilføjet | /* validiscan:skip-link-main */ | |
| 1237 | Tilføjet | .action.skip:not(:focus) { | |
| 1238 | Tilføjet | position: absolute; | |
| 1239 | Tilføjet | width: 1px; | |
| 1240 | Tilføjet | height: 1px; | |
| 1241 | Tilføjet | margin: -1px; | |
| 1242 | Tilføjet | padding: 0; | |
| 1243 | Tilføjet | overflow: hidden; | |
| 1244 | Tilføjet | clip: rect(0 0 0 0); | |
| 1245 | Tilføjet | white-space: nowrap; | |
| 1246 | Tilføjet | border: 0; | |
| 1247 | Tilføjet | } | |
| 1248 | Tilføjet | .action.skip:focus { | |
| 1249 | Tilføjet | position: absolute; | |
| 1250 | Tilføjet | top: 4px; | |
| 1251 | Tilføjet | left: 4px; | |
| 1252 | Tilføjet | z-index: 100; | |
| 1253 | Tilføjet | padding: 8px 12px; | |
| 1254 | Tilføjet | background: #fff; | |
| 1255 | Tilføjet | color: #1a1a1a; | |
| 1256 | Tilføjet | text-decoration: underline; | |
| 1257 | Tilføjet | } | |
| 1258 | Tilføjet | /* /validiscan:skip-link-main */ |
Begynd med et gratis tjek af din webshop.
Send din webshops adresse. Validiscan scanner den og svarer med hver fejl, scanningen kan påvise, med siden og koden.
Bestil et gratis tjekEller skriv til info@validiscan.com.
Hvad det gratis tjek omfatter, og hvad det udelader- Du sender
- din webshops adresse
- Sider, der scannes
- op til 15
- Du får
- hver fejl, scanningen kan påvise, med siden og koden
- På din webshop
- kun offentlige sider; intet login, intet købt, ingen formularer sendt
- Hvad det ikke er
- et fuldt audit