{"id":2463,"date":"2019-08-21T13:54:44","date_gmt":"2019-08-21T13:54:44","guid":{"rendered":"https:\/\/alexandremagno.net\/?p=2463"},"modified":"2019-08-22T11:15:56","modified_gmt":"2019-08-22T11:15:56","slug":"react-native-accessibility-beyond-the-guidelines","status":"publish","type":"post","link":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/","title":{"rendered":"React Native &#8211; accessibility beyond the guidelines"},"content":{"rendered":"<figure id=\"attachment_2471\" aria-describedby=\"caption-attachment-2471\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-2471\" src=\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash-1024x683.jpg\" alt=\"\" width=\"700\" height=\"467\" srcset=\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash-1024x683.jpg 1024w, https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash-300x200.jpg 300w, https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash-768x512.jpg 768w, https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash-700x467.jpg 700w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-2471\" class=\"wp-caption-text\">User with some vision restriction needs to have a special treatment when using an app with the accessibility capabilities from <a href=\"https:\/\/facebook.github.io\/react-native\/\">React Native<\/a>.<br \/><a href=\"https:\/\/unsplash.com\/photos\/qmnpqDwla_E\">Photo<\/a> by <a href=\"https:\/\/unsplash.com\/@joshcala\">Josh Calabrese<\/a> on <a href=\"https:\/\/unsplash.com\">Unsplash<\/a><\/figcaption><\/figure>\n<p>When you&#8217;re talking about accessibility for <a href=\"https:\/\/facebook.github.io\/react-native\/\">React Native<\/a>, we have\u00a0as our primary source\u00a0the\u00a0<a href=\"https:\/\/facebook.github.io\/react-native\/docs\/accessibility\">Accessibility guidelines for React Native<\/a>, which covers what we need to implement accessibility features in any React Native project. But in a real world, the accessibility requirements for a real product that\u00a0needs\u00a0support for accessibility it goes far beyond accessibility labels. I will discuss more advanced topics based on my experience working with the <a href=\"https:\/\/danskebank.dk\/privat\/vaerktoejer\/din-digitale-bank\/mobilbank\">Danske Bank Mobile app<\/a>.<\/p>\n<p>So here I will cover from the basics about accessibility that would be an extra resource beyond the docs and go through concepts and decisions\u00a0beyond the development and\u00a0beyond the\u00a0<a href=\"https:\/\/facebook.github.io\/react-native\/docs\/getting-started\">API documentation<\/a>. We need to take accessibility serious\u00a0from the design process to the code implementation.<\/p>\n<figure id=\"attachment_2470\" aria-describedby=\"caption-attachment-2470\" style=\"width: 169px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2470 size-medium\" src=\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/IMG_3975-1-169x300.png\" alt=\"\" width=\"169\" height=\"300\" srcset=\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/IMG_3975-1-169x300.png 169w, https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/IMG_3975-1-576x1024.png 576w, https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/IMG_3975-1-700x1245.png 700w, https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/IMG_3975-1.png 750w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><figcaption id=\"caption-attachment-2470\" class=\"wp-caption-text\">Mobile Bank experience from <a href=\"https:\/\/danskebank.dk\">Danske Bank<\/a> for an app using the accessibility features from <a href=\"https:\/\/facebook.github.io\/react-native\/\">React Native<\/a><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h2>What is accessibility?<\/h2>\n<p>The accessibility is a set of options to assist deficient users. The accessibility is an option activated on <a href=\"https:\/\/www.apple.com\/lae\/accessibility\/iphone\/vision\/\">IOS with Voice Over option<\/a>, and on Android with\u00a0<a href=\"https:\/\/support.google.com\/accessibility\/android\/answer\/6283677?hl=en\">Talk Back feature<\/a>.<\/p>\n<h2>Using accessibility labels<\/h2>\n<p>The accessibility labels is your best friend when we&#8217;re implementing the accessibility on mobile apps. We need to use it to provide meaningful messages for voice over to communicate with your user in the UI, as the example:<\/p>\n<pre><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">TouchableOpacity<\/span> <span class=\"token attr-name\">accessible<\/span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=<\/span><span class=\"token punctuation\">{<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">}<\/span><\/span> <span class=\"token attr-name\">accessibilityLabel<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Tap me to execute some action!<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span> \r\n<span class=\"token tag\"><span class=\"token punctuation\">  &lt;<\/span><span class=\"token class-name\">View<\/span> <span class=\"token attr-name\">style<\/span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=<\/span><span class=\"token punctuation\">{<\/span>styles<span class=\"token punctuation\">.<\/span>button<span class=\"token punctuation\">}<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span> \r\n<span class=\"token tag\"><span class=\"token punctuation\">    &lt;<\/span><span class=\"token class-name\">Text<\/span> <span class=\"token attr-name\">style<\/span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=<\/span><span class=\"token punctuation\">{<\/span>styles<span class=\"token punctuation\">.<\/span>buttonText<span class=\"token punctuation\">}<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>Press me<span class=\"token operator\">!<\/span><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span><span class=\"token class-name\">Text<\/span><span class=\"token punctuation\">&gt;\r\n<\/span><\/span><span class=\"token tag\"><span class=\"token punctuation\">  &lt;\/<\/span><span class=\"token class-name\">View<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> \r\n<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span><span class=\"token class-name\">TouchableOpacity<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/pre>\n<p>But before that, you will need to mark a view as accessible. The <em>TouchableOpacity<\/em>\u00a0element\u00a0is accessible by default, and here we need to add the accessible property to a view:<\/p>\n<pre><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">View<\/span> <span class=\"token attr-name\">accessible<\/span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=<\/span><span class=\"token punctuation\">{<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span> \r\n<span class=\"token tag\"><span class=\"token punctuation\">  &lt;<\/span><span class=\"token class-name\">Text<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>text one<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span><span class=\"token class-name\">Text<\/span><span class=\"token punctuation\">&gt;\r\n<\/span><\/span><span class=\"token tag\"><span class=\"token punctuation\">  &lt;<\/span><span class=\"token class-name\">Text<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>text two<span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span><span class=\"token class-name\">Text<\/span><span class=\"token punctuation\">&gt;\r\n<\/span><\/span><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span><span class=\"token class-name\">View<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/pre>\n<p>On the first example, the accessibility voice assistant for IOS and Android will read aloud what is on the accessibility label (<em>Tap me to execute some action<\/em>), in the second example, as we marked the parent view as accessible, it will focus in the whole block with these two texts.<\/p>\n<p>If we don&#8217;t provide these properties, the voice reader will read the content of focused texts. Sometimes (and in an ideal world) you don&#8217;t need do nothing, but in other cases, to make a navigation easier for screen reader, you will need to set parent blocks in a logical way and mark as accessible to create a reader experience.<br \/>\nAny other properties and pattern\u00a0that would take advantage from\u00a0accessibility you can easily find on the <a href=\"https:\/\/facebook.github.io\/react-native\/docs\/accessibility\">Accessibility Guidelines for React Native<\/a>. So I will not move forward around this here and I will jump to the practical information when you&#8217;re are implementing these features in your <a href=\"https:\/\/facebook.github.io\/react-native\/\">React Native<\/a> project.<\/p>\n<h3>Meaningful labels<\/h3>\n<p>When we need to provide a good and accessible experience, we need meaningful labels and use React Native components to provide the right message, as the example below:<\/p>\n<pre>&lt;View accessible=\"true\" accessibilityLabel={`<code>You typed ${current} of ${left} characters in your password`}&gt;\r\n  &lt;Text&gt;&lt;\/Text&gt;\r\n&lt;\/View&gt;<\/code><\/pre>\n<p>Here we provided a message in order to let the user know how many characters was typed in a password, so he knows how to proceed through the UI.<\/p>\n<h2>Common issues<\/h2>\n<h3>Numbers and date formats<\/h3>\n<p>This could be an issue, cause you need to pass the right formats to voice over and talk back in order to recognise numbers, dates\u00a0in a way that is intuitive to the user. There&#8217;s different setups for voices reader on IOS and Android, as well languages, so we need to pass into the properties the right formats but we cannot guarantee that the reader will read as we expected, but it will read based on the user settings.<\/p>\n<h3>Non default elements<\/h3>\n<p>When you try to create\u00a0any user interface on <a href=\"https:\/\/facebook.github.io\/react-native\/\">React Native<\/a>, there&#8217;s some situations that you need to create a non default experience and a design system that matches with your brand. But this can increase the effort to provide the best accessibility, cause we need to emulate all the behaviours that usually is built in on the platform. So take this into\u00a0the account when you create your own keyboard, input fields and so on.<\/p>\n<h3>Different navigational patterns from the ones you expected<\/h3>\n<p>If you create special flows maybe the accessibility features from IOS and Android can be confused, so when you think about navigations you will need to consider that you don&#8217;t have control over the order, so let&#8217;s try to fit in the regular flow instead of create complex navigations that can&#8217;t be confused when we navigate through our app with the screen reader enabled.<\/p>\n<p>We need to consider there&#8217;s different approaches of navigations when Voice Over or Talk Back is activated, and this can be tested only by who uses these features day by day, and that&#8217;s all about this on our next topic.<\/p>\n<h2>Beyond the guidelines &#8211; users first<\/h2>\n<p>Test with real blind users, cause they have their navigational pattern that can surprise you. As an example, I was testing the scroll function using three fingers, when actually they use in our tests swipe to scroll. So don&#8217;t assume how to use before explore how the real users do.<\/p>\n<h2>How to test it<\/h2>\n<p>On IOS, the accessibility could be tested using an accessibility tool with the emulator, but you cannot test the voice over, so for a more accurate testing, you need to deploy the app on a real device.<\/p>\n<p>For the Talk Back for Android, you can easily activate on the emulator by dragging the <a href=\"https:\/\/google-talkback.en.uptodown.com\/android\">Talk Back for Android<\/a>.<\/p>\n<h2>Conclusion<\/h2>\n<p>Think about your users and a new way of experience with the voice assistant, from the concept of the UI to provide an accessible app. Take advantage of the guidelines but consider the issues that may arise that goes beyond the implementation, thinks more related to design decisions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you&#8217;re talking about accessibility for React Native, we have\u00a0as our primary source\u00a0the\u00a0Accessibility guidelines for React Native, which covers what we need to implement accessibility features in any React Native project. But in a real world, the accessibility requirements for a real [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2471,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[214,287],"tags":[288,293,290,291,294,292,216,289],"class_list":["post-2463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react","category-react-native","tag-accessibility","tag-danske-bank","tag-development","tag-guidelines","tag-mobile-app","tag-practical","tag-react","tag-react-native"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>React Native - accessibility beyond the guidelines - Webpoint<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React Native - accessibility beyond the guidelines - Webpoint\" \/>\n<meta property=\"og:description\" content=\"When you&#8217;re talking about accessibility for React Native, we have\u00a0as our primary source\u00a0the\u00a0Accessibility guidelines for React Native, which covers what we need to implement accessibility features in any React Native project. But in a real world, the accessibility requirements for a real [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\" \/>\n<meta property=\"og:site_name\" content=\"Webpoint\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-21T13:54:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-22T11:15:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"5235\" \/>\n\t<meta property=\"og:image:height\" content=\"3490\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"alexanmtz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"alexanmtz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\"},\"author\":{\"name\":\"alexanmtz\",\"@id\":\"https:\/\/alexandremagno.net\/#\/schema\/person\/88a94d0648dd15b6080f207b6b2156af\"},\"headline\":\"React Native &#8211; accessibility beyond the guidelines\",\"datePublished\":\"2019-08-21T13:54:44+00:00\",\"dateModified\":\"2019-08-22T11:15:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\"},\"wordCount\":965,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/alexandremagno.net\/#organization\"},\"keywords\":[\"accessibility\",\"danske bank\",\"development\",\"guidelines\",\"mobile app\",\"practical\",\"react\",\"react native\"],\"articleSection\":[\"React\",\"React Native\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\",\"url\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\",\"name\":\"React Native - accessibility beyond the guidelines - Webpoint\",\"isPartOf\":{\"@id\":\"https:\/\/alexandremagno.net\/#website\"},\"datePublished\":\"2019-08-21T13:54:44+00:00\",\"dateModified\":\"2019-08-22T11:15:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/alexandremagno.net\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React Native &#8211; accessibility beyond the guidelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/alexandremagno.net\/#website\",\"url\":\"https:\/\/alexandremagno.net\/\",\"name\":\"Webpoint\",\"description\":\"Weblosofia com desenvolvimento web\",\"publisher\":{\"@id\":\"https:\/\/alexandremagno.net\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/alexandremagno.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/alexandremagno.net\/#organization\",\"name\":\"Webpoint\",\"url\":\"https:\/\/alexandremagno.net\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/alexandremagno.net\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2021\/12\/cropped-cropped-logo-1.png\",\"contentUrl\":\"https:\/\/alexandremagno.net\/wp-content\/uploads\/2021\/12\/cropped-cropped-logo-1.png\",\"width\":35,\"height\":31,\"caption\":\"Webpoint\"},\"image\":{\"@id\":\"https:\/\/alexandremagno.net\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/alexandremagno.net\/#\/schema\/person\/88a94d0648dd15b6080f207b6b2156af\",\"name\":\"alexanmtz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/alexandremagno.net\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/03b43dc8e6881b6af6fbbffd7465227f2d5b0648ba6646a0174a79811ecb6cde?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/03b43dc8e6881b6af6fbbffd7465227f2d5b0648ba6646a0174a79811ecb6cde?s=96&d=mm&r=g\",\"caption\":\"alexanmtz\"},\"sameAs\":[\"https:\/\/alexandremagno.net\"],\"url\":\"https:\/\/alexandremagno.net\/en\/author\/alexanmtz\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"React Native - accessibility beyond the guidelines - Webpoint","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:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/","og_locale":"en_US","og_type":"article","og_title":"React Native - accessibility beyond the guidelines - Webpoint","og_description":"When you&#8217;re talking about accessibility for React Native, we have\u00a0as our primary source\u00a0the\u00a0Accessibility guidelines for React Native, which covers what we need to implement accessibility features in any React Native project. But in a real world, the accessibility requirements for a real [&hellip;]","og_url":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/","og_site_name":"Webpoint","article_published_time":"2019-08-21T13:54:44+00:00","article_modified_time":"2019-08-22T11:15:56+00:00","og_image":[{"width":5235,"height":3490,"url":"https:\/\/alexandremagno.net\/wp-content\/uploads\/2019\/08\/josh-calabrese-qmnpqDwla_E-unsplash.jpg","type":"image\/jpeg"}],"author":"alexanmtz","twitter_card":"summary_large_image","twitter_misc":{"Written by":"alexanmtz","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#article","isPartOf":{"@id":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/"},"author":{"name":"alexanmtz","@id":"https:\/\/alexandremagno.net\/#\/schema\/person\/88a94d0648dd15b6080f207b6b2156af"},"headline":"React Native &#8211; accessibility beyond the guidelines","datePublished":"2019-08-21T13:54:44+00:00","dateModified":"2019-08-22T11:15:56+00:00","mainEntityOfPage":{"@id":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/"},"wordCount":965,"commentCount":0,"publisher":{"@id":"https:\/\/alexandremagno.net\/#organization"},"keywords":["accessibility","danske bank","development","guidelines","mobile app","practical","react","react native"],"articleSection":["React","React Native"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/","url":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/","name":"React Native - accessibility beyond the guidelines - Webpoint","isPartOf":{"@id":"https:\/\/alexandremagno.net\/#website"},"datePublished":"2019-08-21T13:54:44+00:00","dateModified":"2019-08-22T11:15:56+00:00","breadcrumb":{"@id":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/alexandremagno.net\/en\/2019\/08\/21\/react-native-accessibility-beyond-the-guidelines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/alexandremagno.net\/en\/"},{"@type":"ListItem","position":2,"name":"React Native &#8211; accessibility beyond the guidelines"}]},{"@type":"WebSite","@id":"https:\/\/alexandremagno.net\/#website","url":"https:\/\/alexandremagno.net\/","name":"Webpoint","description":"Weblosofia com desenvolvimento web","publisher":{"@id":"https:\/\/alexandremagno.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/alexandremagno.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/alexandremagno.net\/#organization","name":"Webpoint","url":"https:\/\/alexandremagno.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/alexandremagno.net\/#\/schema\/logo\/image\/","url":"https:\/\/alexandremagno.net\/wp-content\/uploads\/2021\/12\/cropped-cropped-logo-1.png","contentUrl":"https:\/\/alexandremagno.net\/wp-content\/uploads\/2021\/12\/cropped-cropped-logo-1.png","width":35,"height":31,"caption":"Webpoint"},"image":{"@id":"https:\/\/alexandremagno.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/alexandremagno.net\/#\/schema\/person\/88a94d0648dd15b6080f207b6b2156af","name":"alexanmtz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/alexandremagno.net\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/03b43dc8e6881b6af6fbbffd7465227f2d5b0648ba6646a0174a79811ecb6cde?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03b43dc8e6881b6af6fbbffd7465227f2d5b0648ba6646a0174a79811ecb6cde?s=96&d=mm&r=g","caption":"alexanmtz"},"sameAs":["https:\/\/alexandremagno.net"],"url":"https:\/\/alexandremagno.net\/en\/author\/alexanmtz\/"}]}},"_links":{"self":[{"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/posts\/2463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/comments?post=2463"}],"version-history":[{"count":10,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/posts\/2463\/revisions"}],"predecessor-version":[{"id":2486,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/posts\/2463\/revisions\/2486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/media\/2471"}],"wp:attachment":[{"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/media?parent=2463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/categories?post=2463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alexandremagno.net\/en\/wp-json\/wp\/v2\/tags?post=2463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}