{"id":2310182,"date":"2024-04-29T10:00:46","date_gmt":"2024-04-29T17:00:46","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2310182"},"modified":"2024-10-24T14:48:54","modified_gmt":"2024-10-24T21:48:54","slug":"build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","title":{"rendered":"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript"},"author":309572,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[28911],"industry":[],"product":[36831],"class_list":["post-2310182","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-accessibility","product-js-api-arcgis"],"acf":{"authors":[{"ID":309572,"user_firstname":"Kitty","user_lastname":"Hurley","nickname":"Kitty Hurley","user_nicename":"khurley","display_name":"Kitty Hurley","user_email":"khurley@esri.com","user_url":"https:\/\/www.github.com\/geospatialem","user_registered":"2022-05-04 21:30:59","user_description":"Kitty is a Principal Product Engineer with Calcite Design System, passionate about expanding access to the web and maps for broader audiences. She is dedicated to creating inclusive, user-friendly web experiences that connect people and places through innovative design and technology. Outside of work, Kitty enjoys exploring the wilderness of Minnesota and has a goal to visit every major league baseball stadium across America.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/03\/Esri_Day2_PSCC2024_H_0127-e1710789483673-261x261.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":4801,"user_firstname":"Kelly","user_lastname":"Hutchins","nickname":"Kelly","user_nicename":"kelly","display_name":"Kelly Hutchins","user_email":"khutchins@esri.com","user_url":"","user_registered":"2018-03-02 00:16:25","user_description":"Software developer on the instant apps team building apps that help you share your Online content. Outside of work I enjoy spending time trail running with my dogs.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/IMG_3695-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn how to make your web maps accessible to wider audiences using live regions and descriptions.","flexible_content":[{"acf_fc_layout":"image","image":{"ID":2316092,"id":2316092,"title":"aria-cover","filename":"aria-cover.png","filesize":301412,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\/aria-cover","alt":"A map centered on the United States lower 48 states, which summarize the count, and rates, of accidental deaths in each state.","author":"309572","description":"","caption":"","name":"aria-cover","status":"inherit","uploaded_to":2310182,"date":"2024-04-23 22:31:37","modified":"2024-10-24 21:45:28","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1920,"height":1080,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","large-width":1920,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover-1536x864.png","1536x1536-width":1536,"1536x1536-height":864,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","2048x2048-width":1920,"2048x2048-height":1080,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover-826x465.png","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","wide_image-width":1920,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>When building interactive maps, which are very visual in nature, apps can include improvements so they can reach wider audiences. Interactive map users benefit when context is provided as they interact with the map. For example, providing context when the map has loaded in the display, what the map&#8217;s data includes, and and map&#8217;s purpose.<\/p>\n<p>By providing additional context to audiences with low, or no vision, mapping apps can be used more universally. Similar strategies can also support lower internet speed connections, where context is provided if the content takes longer than expected to load in the app.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Live regions<\/h2>\n<p>While a fully sighted user may be able to indicate when the map has loaded on the page, users who rely on assistive technologies, such as a screen reader, may not know when the map has loaded in the app. When content dynamically changes, its context can be provided to a user through assistive technologies with an <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Accessibility\/ARIA\/ARIA_Live_Regions\" target=\"_blank\" rel=\"noopener\">ARIA live region<\/a>.<\/p>\n"},{"acf_fc_layout":"content","content":"<h3>Add a live region<\/h3>\n<p>To provide similar on-demand context when the map has loaded to assistive technologies, a live region can be added to the map. Add an <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Accessibility\/ARIA\/Attributes\/aria-describedby\">aria-describedby attribute<\/a> to the parent element of the map, such as the document&#8217;s body. The aria-describedby attribute will be associated with another element&#8217;s &#8220;id&#8221; on the page, where the description will be provided. The element can also include the aria-live attribute set to &#8220;polite&#8221; so users receive the information when they are idle. By adding an aria-describedby attribute, those navigating an app with assistive technologies will have the ability to better understand the content in the app.<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #000080;font-weight: normal\">&lt;<span style=\"color: #000080;font-weight: normal\">body<\/span> <span style=\"color: #008080\">aria-describedby<\/span>=<span style=\"color: #d14\">\"map-loaded\"<\/span>&gt;<\/span>\r\n  <span style=\"color: #000080;font-weight: normal\">&lt;<span style=\"color: #000080;font-weight: normal\">p<\/span> <span style=\"color: #008080\">id<\/span>=<span style=\"color: #d14\">\"map-loaded\"<\/span> <span style=\"color: #008080\">aria-live=<span style=\"color: #d14\">\"polite\"<\/span> class<\/span>=<span style=\"color: #d14\">\"sr-only\"<\/span>&gt;<\/span><span style=\"color: #000080;font-weight: normal\">&lt;\/<span style=\"color: #000080;font-weight: normal\">p<\/span>&gt;<\/span>\r\n<span style=\"color: #000080;font-weight: normal\">&lt;\/<span style=\"color: #000080;font-weight: normal\">body<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>To visually hide the description from users, add a &#8220;sr-only&#8221; class to the element. The class will still contain the description&#8217;s text contents, but will be visually hidden in the app via CSS:<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\">.sr-only {\r\n  <span style=\"color: #008080\">position<\/span>: absolute;\r\n  <span style=\"color: #008080\">width<\/span>: <span style=\"color: #008080\">1px<\/span>;\r\n  <span style=\"color: #008080\">height<\/span>: <span style=\"color: #008080\">1px<\/span>;\r\n  <span style=\"color: #008080\">padding<\/span>: <span style=\"color: #008080\">0<\/span>;\r\n  <span style=\"color: #008080\">margin<\/span>: -<span style=\"color: #008080\">1px<\/span>;\r\n  <span style=\"color: #008080\">overflow<\/span>: hidden;\r\n  <span style=\"color: #008080\">clip<\/span>: rect(<span style=\"color: #008080\">0<\/span>, <span style=\"color: #008080\">0<\/span>, <span style=\"color: #008080\">0<\/span>, <span style=\"color: #008080\">0<\/span>);\r\n  <span style=\"color: #008080\">border<\/span>: <span style=\"color: #008080\">0<\/span>;\r\n}<\/code><\/pre>\n<p>To use a similar strategy for low internet speeds, the CSS class above could be omitted to provide both visual and descriptive information to users, in the event the messaging could be useful visually and to assistive technology users.<\/p>\n"},{"acf_fc_layout":"content","content":"<h3>Dynamically add the description<\/h3>\n<p>Update the live region with information from the web map after the view is ready with the\u00a0web map&#8217;s title, Accidental Deaths, and add it to the live region:<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #333;font-weight: bold\">const<\/span> mapLoadMsg = <span style=\"color: #0086b3\">document<\/span>.getElementById(<span style=\"color: #d14\">\"map-loaded\"<\/span>);\r\n\r\n<span style=\"color: #333;font-weight: bold\">await<\/span> view.when();\r\nmapLoadMsg.innerText = <span style=\"color: #d14\">`<span style=\"color: #333;font-weight: normal\">${map.portalItem.title}<\/span> map has loaded.`<\/span>;\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<h2>Create a map description<\/h2>\n<p>The map can also contain a description when a user is actively focused on the map with assistive technologies.<\/p>\n<p>Similar to the live region, a new element can be added to contain the map&#8217;s description. Add the same &#8220;sr-only&#8221; class to the element, where the description will be visually hidden to users:<\/p>\n<p><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #000080;font-weight: normal\">&lt;p <span style=\"color: #008080\">id<\/span>=<span style=\"color: #d14\">\"map-description\"<\/span> <span style=\"color: #008080\">class<\/span>=<span style=\"color: #d14\">\"sr-only\"<\/span>&gt;<\/span><span style=\"color: #000080;font-weight: normal\">&lt;\/p&gt;<\/span><\/code><\/p>\n<p>If an app contains a web map, the webmap&#8217;s snippet or description can be used to update the &#8220;map-description&#8221; element, which provides additional context on the map&#8217;s purpose and contents to the user.<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #333;font-weight: bold\">const<\/span> mapLoadMsg = <span style=\"color: #0086b3\">document<\/span>.getElementById(<span style=\"color: #d14\">\"map-loaded\"<\/span>);\r\n<span style=\"color: #333;font-weight: bold\">const<\/span> mapDescription = <span style=\"color: #0086b3\">document<\/span>.getElementById(<span style=\"color: #d14\">\"map-description\"<\/span>);\r\n\r\n<span style=\"color: #333;font-weight: bold\">await<\/span> view.when();\r\nmapLoadMsg.innerText = <span style=\"color: #d14\">`<span style=\"color: #333;font-weight: normal\">${map.portalItem.title}<\/span> map has loaded.`<\/span>;\r\nmapDescription.innerText = map.portalItem.snippet;\r\n<span style=\"color: #333;font-weight: bold\">const<\/span> surfaceEls = [...document.getElementsByClassName(<span style=\"color: #d14\">\"esri-view-surface\"<\/span>)];\r\nsurfaceEls.forEach((surfaceEl) =&gt;\r\n  surfaceEl.setAttribute(<span style=\"color: #d14\">\"aria-describedby\"<\/span>, <span style=\"color: #d14\">\"map-description\"<\/span>)\r\n);\r\n<\/code><\/pre>\n<p>To add the description to the map view&#8217;s surface node, use &#8220;getElementsByClassName&#8221; to return elements from the &#8220;esri-view-surface&#8221; class. There is only one element, but the method returns an array of results. The <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Operators\/Spread_syntax\" target=\"_blank\" rel=\"noopener\">spread syntax (&#8230;)<\/a> iterates through the array, which applies the description to the element.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Explore the demonstration app<\/h2>\n<p>Below is a demonstration app, with the <a href=\"https:\/\/github.com\/geospatialem\/build-a11y-web-maps-sdk-js-calcite-ds-2024\/blob\/main\/demos\/description-region.html\" target=\"_blank\" rel=\"noopener\">code<\/a> and <a href=\"https:\/\/geospatialem.github.io\/build-a11y-web-maps-sdk-js-calcite-ds-2024\/demos\/description-region.html\">app<\/a> available on GitHub.<\/p>\n<p>To test the app:<\/p>\n<ol>\n<li>Enable a screen reader, such as <a href=\"https:\/\/www.nvaccess.org\/\" target=\"_blank\" rel=\"noopener\">NVDA<\/a> (free) or <a href=\"https:\/\/www.freedomscientific.com\/products\/software\/jaws\/\" target=\"_blank\" rel=\"noopener\">JAWS<\/a> on Windows, or <a href=\"https:\/\/dequeuniversity.com\/tips\/learn-voiceover\" target=\"_blank\" rel=\"noopener\">VoiceOver<\/a> (included) on MacOS.<\/li>\n<li>Open the <a href=\"https:\/\/geospatialem.github.io\/build-a11y-web-maps-sdk-js-calcite-ds-2024\/demos\/description-region.html\" target=\"_blank\" rel=\"noopener\">app<\/a> in a browser window. For VoiceOver, Safari is MacOS&#8217; supported browser.<\/li>\n<li>Navigate into the app and explore the live region and map description.<\/li>\n<\/ol>\n<p>Note: Not all assistive technologies support the aria-describedby attribute. For example, <a href=\"https:\/\/support.microsoft.com\/en-us\/windows\/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1\" target=\"_blank\" rel=\"noopener\">Narrator<\/a> does not. For full supporting information of aria-described by, visit <a href=\"https:\/\/a11ysupport.io\/tech\/aria\/aria-describedby_attribute\" target=\"_blank\" rel=\"noopener\">a11ysupport.io<\/a>.<\/p>\n"},{"acf_fc_layout":"storymap","title":"","description":"","static":false,"storymap_url":"<a href=\"https:\/\/geospatialem.github.io\/build-a11y-web-maps-sdk-js-calcite-ds-2024\/demos\/description-region.html\">https:\/\/geospatialem.github.io\/build-a11y-web-maps-sdk-js-calcite-ds-2024\/demos\/description-region.html<\/a>"}],"related_articles":[{"ID":2093302,"post_author":"68331","post_date":"2024-01-16 00:00:13","post_date_gmt":"2024-01-16 08:00:13","post_content":"","post_title":"Accessible Labels with ArcGIS Web Apps","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"a11y-labels-arcgis-online-web-apps","to_ping":"","pinged":"","post_modified":"2024-10-24 15:19:55","post_modified_gmt":"2024-10-24 22:19:55","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2093302","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1878872,"post_author":"309572","post_date":"2023-04-10 07:39:50","post_date_gmt":"2023-04-10 14:39:50","post_content":"","post_title":"Build accessible web apps with ArcGIS Maps SDK for JavaScript and Calcite Design System","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"build-accessible-web-apps-with-arcgis-maps-sdk-for-javascript-and-calcite-design-system","to_ping":"","pinged":"","post_modified":"2024-10-24 15:07:33","post_modified_gmt":"2024-10-24 22:07:33","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1878872","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-card2.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript<\/title>\n<meta name=\"description\" content=\"Learn how to make your web maps accessible to wider audiences using ARIA live regions and descriptions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript\" \/>\n<meta property=\"og:description\" content=\"Learn how to make your web maps accessible to wider audiences using ARIA live regions and descriptions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-24T21:48:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\"},\"author\":{\"name\":\"Kitty Hurley\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d3e2f690ee8951f6625010e5b55aee8\"},\"headline\":\"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript\",\"datePublished\":\"2024-04-29T17:00:46+00:00\",\"dateModified\":\"2024-10-24T21:48:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\"},\"wordCount\":12,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"accessibility\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\",\"name\":\"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2024-04-29T17:00:46+00:00\",\"dateModified\":\"2024-10-24T21:48:54+00:00\",\"description\":\"Learn how to make your web maps accessible to wider audiences using ARIA live regions and descriptions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d3e2f690ee8951f6625010e5b55aee8\",\"name\":\"Kitty Hurley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/03\/Esri_Day2_PSCC2024_H_0127-e1710789483673-261x261.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/03\/Esri_Day2_PSCC2024_H_0127-e1710789483673-261x261.jpg\",\"caption\":\"Kitty Hurley\"},\"description\":\"Kitty is a Principal Product Engineer with Calcite Design System, passionate about expanding access to the web and maps for broader audiences. She is dedicated to creating inclusive, user-friendly web experiences that connect people and places through innovative design and technology. Outside of work, Kitty enjoys exploring the wilderness of Minnesota and has a goal to visit every major league baseball stadium across America.\",\"sameAs\":[\"https:\/\/www.github.com\/geospatialem\",\"https:\/\/www.linkedin.com\/in\/khurley\",\"https:\/\/x.com\/geospatialem\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/khurley\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript","description":"Learn how to make your web maps accessible to wider audiences using ARIA live regions and descriptions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","og_locale":"en_US","og_type":"article","og_title":"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript","og_description":"Learn how to make your web maps accessible to wider audiences using ARIA live regions and descriptions.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-10-24T21:48:54+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript"},"author":{"name":"Kitty Hurley","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d3e2f690ee8951f6625010e5b55aee8"},"headline":"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript","datePublished":"2024-04-29T17:00:46+00:00","dateModified":"2024-10-24T21:48:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript"},"wordCount":12,"commentCount":1,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["accessibility"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","name":"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2024-04-29T17:00:46+00:00","dateModified":"2024-10-24T21:48:54+00:00","description":"Learn how to make your web maps accessible to wider audiences using ARIA live regions and descriptions.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Build Accessibility into your Web Maps with ArcGIS Maps SDK for JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d3e2f690ee8951f6625010e5b55aee8","name":"Kitty Hurley","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/03\/Esri_Day2_PSCC2024_H_0127-e1710789483673-261x261.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/03\/Esri_Day2_PSCC2024_H_0127-e1710789483673-261x261.jpg","caption":"Kitty Hurley"},"description":"Kitty is a Principal Product Engineer with Calcite Design System, passionate about expanding access to the web and maps for broader audiences. She is dedicated to creating inclusive, user-friendly web experiences that connect people and places through innovative design and technology. Outside of work, Kitty enjoys exploring the wilderness of Minnesota and has a goal to visit every major league baseball stadium across America.","sameAs":["https:\/\/www.github.com\/geospatialem","https:\/\/www.linkedin.com\/in\/khurley","https:\/\/x.com\/geospatialem"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/khurley"}]}},"text_date":"April 29, 2024","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/build-accessibility-into-your-web-maps-with-arcgis-maps-sdk-for-javascript","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/04\/aria-cover.png","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":28911,"name":"accessibility","slug":"accessibility","term_group":0,"term_taxonomy_id":28911,"taxonomy":"post_tag","description":"","parent":0,"count":71,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":423,"filter":"raw"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":363,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=js-api-arcgis","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2310182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/309572"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2310182"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2310182\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2310182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2310182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2310182"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2310182"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2310182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}