{"id":1005,"date":"2016-11-29T11:00:27","date_gmt":"2016-11-29T19:00:27","guid":{"rendered":"http:\/\/blogs.lanecc.edu\/webteam\/?p=1005"},"modified":"2016-12-12T13:08:51","modified_gmt":"2016-12-12T21:08:51","slug":"exploring-wcag-2-0-bypass-blocks","status":"publish","type":"post","link":"https:\/\/blogs.lanecc.edu\/webteam\/2016\/11\/29\/exploring-wcag-2-0-bypass-blocks\/","title":{"rendered":"Understanding WCAG 2.0: 2.4.1 &#8211; Bypass Blocks"},"content":{"rendered":"<p>The next standard we&#8217;ll explore in our series on understanding WCAG 2.0 is <a href=\"https:\/\/www.w3.org\/TR\/UNDERSTANDING-WCAG20\/navigation-mechanisms-skip.html\">2.4.1, Bypass Blocks<\/a>. This standard is required for WCAG level A compliance, which is part of what Section 508 requires. For the first time in this series, we&#8217;re exploring a standard that&#8217;s substantially equivalent to existing 508 standards (<a href=\"https:\/\/www.access-board.gov\/guidelines-and-standards\/communications-and-it\/about-the-section-508-standards\/section-508-standards\">1194.22(o)<\/a>). Here&#8217;s the complete text:<\/p>\n<blockquote><p><strong class=\"sc-handle\">2.4.1 Bypass Blocks:<\/strong> A mechanism is available to bypass blocks of content that are repeated on multiple Web pages. (Level A)<\/p><\/blockquote>\n<p>The existing 508 standard is a little more specific, simply requiring a mechanism to bypass &#8220;repetitive navigation links&#8221;.<\/p>\n<p>Let&#8217;s look at a screenshot of a page on the Lane website, and then break it into some blocks.*<\/p>\n<p><a href=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/10\/contact.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-970\" src=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/10\/contact.png\" alt=\"The Lane contact page, at lanecc.edu\/contact\" height=\"1472\" width=\"1025\" srcset=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/10\/contact.png 1025w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/10\/contact-209x300.png 209w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/10\/contact-768x1103.png 768w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/10\/contact-713x1024.png 713w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p>If we overlay this page with some blocks, we get something like this:<\/p>\n<p><a href=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-label.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1007\" src=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-label.png\" alt=\"A labeled version of the same page at lanecc.edu\/contact\" height=\"1840\" width=\"1281\" srcset=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-label.png 1281w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-label-209x300.png 209w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-label-768x1103.png 768w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-label-713x1024.png 713w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p>If you&#8217;re a sighted person, you can quickly skip over the repetitive blocks that appear on every page &#8211; you just move your eyes immediately to the start of the body. But if you&#8217;re dependent on a screen reader, you&#8217;re forced to read the entire page from top to bottom, with one notable exception, like this:<\/p>\n<ol>\n<li>Header<\/li>\n<li>Sidebar<\/li>\n<li>Body (including the in-page block)<\/li>\n<li>Social Bar<\/li>\n<li>Footer Links<\/li>\n<li>Social Links<\/li>\n<li>Contact Info<\/li>\n<li>Megamenu<\/li>\n<\/ol>\n<p>Notice how the body is the 3<sup>rd<\/sup> thing on there? If you depend on a screen reader, you&#8217;ll be forced to hear those first three regions read to you on every single page. In our case, that could be well over a hundred links read to you before you get to the content you need.<\/p>\n<p>And why&#8217;s the megamenu block read last, even though it&#8217;s at the top of the page? That&#8217;s an example of a block where the position in the code doesn&#8217;t match the position on the page. The megamenu appears to be at the top of the page, but it&#8217;s actually at the bottom of the code, meaning a screanreader reads it last. There&#8217;s some complex reasons for that, which would make this post unreasonably long, so we won&#8217;t go into them here.<\/p>\n<p>Section 508 helps out by requiring a way to skip repetitive navigation links. Usually this is done by creating a link on the text &#8220;skip to content&#8221; at the very top of the page, which links to an anchor mid page, right where the body is. To meet this 508 requirement, we put a pair of skip links at the top of all our pages:<\/p>\n<ul>\n<li>One that says &#8220;skip to navigation&#8221;, which skips directly to the sidebar<\/li>\n<li>One that says &#8220;skip to main content&#8221;, which skips directly to the top of the body<\/li>\n<\/ul>\n<p>We also put two more in the footer, which let you skip over parts of the footer:<\/p>\n<ul>\n<li>One at the top of the footer links, which skips to the footer links<\/li>\n<li>One at the top of the social links, which skips to the contact info<\/li>\n<\/ul>\n<p>There isn&#8217;t one to skip the megamenu, since it&#8217;s at the bottom of the page, so there&#8217;s nothing to skip to &#8211; this is a bit of an imperfect solution, but until we can fix it (<a href=\"https:\/\/github.com\/LaneCommunityCollege\/megamenu\/issues\/27\">See this issue to follow along<\/a>), it&#8217;ll work.<\/p>\n<p>Together, these skip links give people these shortcuts to skip parts of the page that appear all over the site:<\/p>\n<p><a href=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-arrow.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1008\" src=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-arrow.png\" alt=\"Same contact page, with arrows\" height=\"1840\" width=\"1281\" srcset=\"https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-arrow.png 1281w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-arrow-209x300.png 209w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-arrow-768x1103.png 768w, https:\/\/blogs.lanecc.edu\/webteam\/wp-content\/uploads\/sites\/25\/2016\/11\/contact-arrow-713x1024.png 713w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p>Though it seems like the skip to navigation link is a bit silly (since it&#8217;s skipping nothing in that image), it&#8217;s actually important for other pages where we have links in the header (like our <a href=\"https:\/\/www.lanecc.edu\">landing page<\/a>).<\/p>\n<p>Under WCAG, instead of just skipping repetitive navigation links, we also need to have a way to skip repetitive page blocks. And that means we need to consider content even at the paragraph level. So while the in-page block in our image isn&#8217;t a problem on the <a href=\"https:\/\/www.lanecc.edu\/contact\">contact page<\/a>, it would become a problem if it was on every page on the site, or even every page on a chunk of the site (like every page in the science department). Then we&#8217;d need a skip link.<\/p>\n<p>I&#8217;ve seen repetitive text on our site in two places. First is departments that have a common paragraph or sentence they show on every page. For instance, a department might want to show their department vision on every page. That&#8217;s actually not ok &#8211; instead, they should have their vision just once on their landing page, or link to a page with their vision from their menu.<\/p>\n<p>The second place is people who put lots of links that say &#8220;return to top&#8221;, which link to the top of the page. Strictly speaking, these aren&#8217;t really skip links, but they are completely unnecessary, and a holdover from an earlier time on the web. Screen readers and keyboards both have shortcuts to jump to the top of the page (it&#8217;s ctrl-home on a windows computer or cmd-up on a mac) &#8211; but most people just scroll or flick the page with their finger on a phone. There&#8217;s a place to use an in-page link to the top of the page, but those places are pretty rare.<\/p>\n<p>If you&#8217;d like to read more about bypass blocks, you may also be interested in <a href=\"https:\/\/www.w3.org\/TR\/UNDERSTANDING-WCAG20\/navigation-mechanisms-skip.html#navigation-mechanisms-skip-techniques-head\">these techniques<\/a>, which provides examples and more detail. Specifically, it includes discussion about about using aria-roles, which provide an easy way to identify page regions, and make it easier to navigate a page.<\/p>\n<p>Interested in more? Check out the listing of <a href=\"http:\/\/blogs.lanecc.edu\/webteam\/2016\/10\/11\/updated-accessibility-requirements\/\">all the posts in this series<\/a>.<\/p>\n<p>* The word blocks has a very specific meaning in Drupal, but that&#8217;s not how we&#8217;re using it here. As far as WCAG is concerned, blocks can refer to Drupal blocks, regions, zones, or even just paragraphs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The next standard we&#8217;ll explore in our series on understanding WCAG 2.0 is 2.4.1, Bypass Blocks. This standard is required for WCAG level A compliance, which is part of what Section 508 requires. For the first time in this series, we&#8217;re exploring a standard that&#8217;s substantially equivalent to existing 508 standards (1194.22(o)). Here&#8217;s the complete &hellip; <a href=\"https:\/\/blogs.lanecc.edu\/webteam\/2016\/11\/29\/exploring-wcag-2-0-bypass-blocks\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Understanding WCAG 2.0: 2.4.1 &#8211; Bypass Blocks&#8221;<\/span><\/a><\/p>\n","protected":false},"author":86,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":"","_wpscppro_dont_share_socialmedia":false,"_wpscppro_custom_social_share_image":0,"_facebook_share_type":"","_twitter_share_type":"","_linkedin_share_type":"","_pinterest_share_type":"","_linkedin_share_type_page":"","_instagram_share_type":"","_medium_share_type":"","_threads_share_type":"","_google_business_share_type":"","_selected_social_profile":[],"_wpsp_enable_custom_social_template":false,"_wpsp_social_scheduling":{"enabled":false,"datetime":null,"platforms":[],"status":"template_only","dateOption":"today","timeOption":"now","customDays":"","customHours":"","customDate":"","customTime":"","schedulingType":"absolute"},"_wpsp_active_default_template":true},"categories":[31,26],"tags":[6,25],"class_list":["post-1005","post","type-post","status-publish","format-standard","hentry","category-wcag-20","category-web","tag-accessibility","tag-drupal"],"_links":{"self":[{"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/posts\/1005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/comments?post=1005"}],"version-history":[{"count":4,"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/posts\/1005\/revisions"}],"predecessor-version":[{"id":1055,"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/posts\/1005\/revisions\/1055"}],"wp:attachment":[{"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/media?parent=1005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/categories?post=1005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.lanecc.edu\/webteam\/wp-json\/wp\/v2\/tags?post=1005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}