DEV Community

[Comment from a deleted post]
Collapse
 
melnik909 profile image
Stas Melnikov

Let's discuss it more details?

 
brittneypostma profile image
Brittney Postma

Yeah, absolutely. I made a few points in the comment above if you have any rebuttals on those? I was just trying to point out that the article's claims aren't technically good coding habits in every circumstance.

 
melnik909 profile image
Stas Melnikov • Edited

I see. I think we can start with headings. I told about if you add headings anywhere you complicate navigation of users with screen readers because the list of headings bacame unnecessarily large.

Why is it the bad practices?

 
brittneypostma profile image
Brittney Postma

Each page should have an h1 giving the highest level of importance on the page, which in the example is the iPad Pro. Apple themselves don't even follow this practice, but here is a decent post on why it is important to level correctly. webaim.org/techniques/semanticstru...

 
melnik909 profile image
Stas Melnikov • Edited

the fragment is a section on the home page. So the h1 can't be used. So I give the fragments of code where h1 isn't. One of them is a fragment from the real website.

 
brittneypostma profile image
Brittney Postma • Edited

This is the same snippet of code directly from Apple's site.

<div id="hero-headline-zoom" data-component-list="HeroTextZoom">
                                <h1 id="hero-headline" data-component-list="HeroHeadline" data-focus-expression="{&quot;expression&quot;: &quot;t - 100vh&quot;}" class="hero-headline typography-experience-hero-headline">iPad Pro</h1>
                                <div id="hero-headline-gradient"></div>
                                <h2 id="hero-subhead" class=" typography-experience-hero-subhead" data-focus-expression="{&quot;expression&quot;: &quot;t - 100vh&quot;}" data-component-list="HeroSubHeadline">Supercharged by the Apple M1 chip.</h2>
                            </div>
Enter fullscreen mode Exit fullscreen mode

Here is the snippet from the homepage, which the h2 is correct in.

<div class="unit-copy-wrapper">
                                                    <h2 class="headline">iPad Pro</h2>
                                                    <h3 class="subhead" role="presentation">Supercharged by the Apple&nbsp;M1&nbsp;chip.</h3>


                                        <div class="cta-links">
                                                    <a class="icon icon-after icon-chevronright" href="/ipad-pro/" target="_self" rel="follow" data-analytics-region="learn more" data-analytics-title="Learn more about iPad Pro" aria-label="Learn more about iPad Pro">Learn more</a>
                                                    <a class="icon icon-after icon-chevronright" href="/us/shop/goto/ipad_pro/select" target="_self" rel="follow" data-analytics-region="buy" data-analytics-title="Buy iPad Pro" aria-label="Buy iPad Pro">Buy</a>
                                        </div>

                                    </div>
Enter fullscreen mode Exit fullscreen mode

This is semantically correct, so while your example is technically correct for a page with multiple headings, it does not appear that way in your image. It seems that this is the page view, where there should be an h1 at that level. Your post isn't incorrect, it's just most of it was based on the circumstance you use it in.

 
melnik909 profile image
Stas Melnikov • Edited

I told about approach that will help people to improve interfaces. Yes, if we consider snippet from Apple website role="presentation" helps. But it's a hack.

ARIA in HTML spec tells "Don't override default roles" w3.org/TR/html-aria/#don-t-overrid...

You told I wrote a bad practice but I don't understand where you found that.

 
brittneypostma profile image
Brittney Postma

True, it's probably not bad practice after you explained it's from the home page. The other problem I saw was saying don't use grid with space between. Like I said before that is completely situational and using that is completely fine. I think it's more the wording and how the first example is taken out of context.