{"id":10351,"date":"2026-07-11T10:02:48","date_gmt":"2026-07-11T15:02:48","guid":{"rendered":"https:\/\/master.dev\/blog\/?p=10351"},"modified":"2026-07-11T10:03:34","modified_gmt":"2026-07-11T15:03:34","slug":"the-siren-song-of-arianotify","status":"publish","type":"post","link":"https:\/\/master.dev\/blog\/the-siren-song-of-arianotify\/","title":{"rendered":"The Siren Song of\u00a0ariaNotify()"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/css-tricks.com\/the-siren-song-of-arianotify\/\">Mat Marquis details<\/a> the good-and-dangerous of a new method which we can <em>just make a screenreader say something.<\/em><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">There\u2019s a brand new&nbsp;<code>ariaNotify()<\/code>&nbsp;method \u2014 defined by the&nbsp;<a href=\"https:\/\/w3c.github.io\/aria\/#ARIANotifyMixin\">Accessible Rich Internet Applications (WAI-ARIA) 1.3 Specification<\/a>&nbsp;\u2014 that provides you with a means of programmatically triggering narration in a screen reader. It accepts a string as its first argument, and an optional configuration object as its second:<\/p>\n<\/blockquote>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-built_in\">document<\/span>.ariaNotify(<span class=\"hljs-string\">\"Hello, World.\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">In the past, exotic tangos with <code>aria-live<\/code> were required. The dangerous part is that, in becoming too easy, it will do more harm than good, like an <code>alert(\"Click here to open the navigation.\");<\/code> So like Mat Says:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">So just be&nbsp;<em>cool<\/em>&nbsp;about this, okay? Okay.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Mat Marquis details the good-and-dangerous of a new method which we can just make a screenreader say something. There\u2019s a brand new&nbsp;ariaNotify()&nbsp;method \u2014 defined by the&nbsp;Accessible Rich Internet Applications (WAI-ARIA) 1.3 Specification&nbsp;\u2014 that provides you with a means of programmatically triggering narration in a screen reader. It accepts a string as its first argument, and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10381,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[29],"tags":[49,513,3],"class_list":["post-10351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-beat","tag-accessibility","tag-aria","tag-javascript"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/master.dev\/blog\/wp-content\/uploads\/2026\/07\/pexels-photo-27577330.jpeg?fit=1625%2C1300&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts\/10351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/comments?post=10351"}],"version-history":[{"count":3,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts\/10351\/revisions"}],"predecessor-version":[{"id":10383,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts\/10351\/revisions\/10383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/media\/10381"}],"wp:attachment":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/media?parent=10351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/categories?post=10351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/tags?post=10351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}