{"id":20703,"date":"2019-06-25T17:21:03","date_gmt":"2019-06-25T16:21:03","guid":{"rendered":"https:\/\/www.intercom.com\/blog\/?p=20703"},"modified":"2020-07-30T12:54:37","modified_gmt":"2020-07-30T11:54:37","slug":"accessibility-buttons-messenger","status":"publish","type":"post","link":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/","title":{"rendered":"Hot button issue: Improving accessibility in the Messenger"},"content":{"rendered":"<p>When building product at Intercom, we move fast so that we can deliver value to our customers and validate our solutions to their problems as early on as possible. As a result of this fast pace, we sometimes need to circle back to polish past work that can be improved and iterated on.<\/p>\n<p>One recent example involved an accessibility issue in the \u201cquick reply\u201d buttons in our Messenger \u2013 a seemingly small detail in its own right, but one that we were able to revisit and improve to ensure we met the highest web accessibility standards.<\/p>\n<h2 id=\"the-old-way\">The old way<\/h2>\n<p>Quick reply buttons offer users a range of options that allow them to pick a topic and easily begin their interaction in the Messenger. In the previous design, the quick reply buttons had a default state and then a hover state when a user moved their cursor over the button. Once clicked, a conversation would be triggered and the button would enter an active state, which was the same appearance as its hover state.<\/p>\n<div id=\"attachment_20725\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20725\" class=\"size-full wp-image-20725\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design.jpg\" alt=\"\" width=\"1400\" height=\"1151\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design.jpg 1400w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design-300x247.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design-768x631.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design-700x576.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design-600x493.jpg 600w\" sizes=\"auto, (max-width: 1400px) 100vw, 1400px\" \/><p id=\"caption-attachment-20725\" class=\"wp-caption-text\"><em>How quick reply buttons used to appear in the Intercom Messenger when in their default inactive state<\/em><\/p><\/div>\n<p>To style their Messenger and personalize it to their own brand, customers can choose two different colors, a background color for team profile and other backgrounds, and an action color for use in buttons, links and highlights.<\/p>\n<div id=\"attachment_20726\" style=\"width: 874px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20726\" class=\"size-full wp-image-20726\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/2-color-choices.jpg\" alt=\"\" width=\"864\" height=\"422\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/2-color-choices.jpg 864w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/2-color-choices-300x147.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/2-color-choices-768x375.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/2-color-choices-700x342.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/2-color-choices-600x293.jpg 600w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><p id=\"caption-attachment-20726\" class=\"wp-caption-text\"><em>Color choices in Messenger settings<\/em><\/p><\/div>\n<p>In their default state, the quick reply buttons always had a white background, and the action color was used for the text and border of the buttons. In the hover and default states, the action color would become the solid button color.<\/p>\n<p>In some cases, if the action color had a very low contrast with the white background in the default state, black was used instead for the text and border to increase legibility.<\/p>\n<div id=\"attachment_20728\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20728\" class=\"size-full wp-image-20728\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/3-examples-of-old-button-design.jpg\" alt=\"\" width=\"1400\" height=\"152\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/3-examples-of-old-button-design.jpg 1400w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/3-examples-of-old-button-design-300x33.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/3-examples-of-old-button-design-768x83.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/3-examples-of-old-button-design-700x76.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/3-examples-of-old-button-design-600x65.jpg 600w\" sizes=\"auto, (max-width: 1400px) 100vw, 1400px\" \/><p id=\"caption-attachment-20728\" class=\"wp-caption-text\"><em>Some examples of buttons in the previous design<\/em><\/p><\/div>\n<h2 id=\"the-goals-of-the-improved-button-design\">The goals of the improved button design<\/h2>\n<p>There were a number of things that we wanted to achieve with the new quick reply button design.<\/p>\n<h3>1. Improve readability<\/h3>\n<p>We noticed that the borders affected readability when there were a few quick reply buttons stacked together, particularly with darker action colors.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/4-examples-of-many-buttons-in-the-messenger.jpg\" \/><\/p>\n<h3>2. Improve accessibility<\/h3>\n<p>We have a high bar for <a href=\"https:\/\/www.intercom.com\/blog\/messenger-accessibility\/\" target=\"_blank\" rel=\"noopener noreferrer\">accessibility standards in the Intercom Messenger<\/a> and always try to ensure an <a href=\"https:\/\/www.w3.org\/TR\/UNDERSTANDING-WCAG20\/conformance.html#uc-levels-head\" target=\"_blank\" rel=\"noopener noreferrer\">accessibility level of conformance<\/a> of AA for regular text and AAA for large text, which means meeting the highest accessibility criteria as defined by the <a href=\"https:\/\/www.w3.org\/WAI\/standards-guidelines\/wcag\/\" target=\"_blank\" rel=\"noopener noreferrer\">Web Content Accessibility Guidelines<\/a> (WCAG) international standard.<\/p>\n<p>For quick replies, this translates to having a contrast ratio above 4.5:1 between the background and text colors. After doing a quick study of the state of quick reply buttons in the wild, we realized that the previous default state design did not meet this bar a lot of the time.<\/p>\n<div id=\"attachment_20730\" style=\"width: 807px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20730\" class=\"size-full wp-image-20730\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/5-poor-contrast-ratios.jpg\" alt=\"\" width=\"797\" height=\"103\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/5-poor-contrast-ratios.jpg 797w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/5-poor-contrast-ratios-300x39.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/5-poor-contrast-ratios-768x99.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/5-poor-contrast-ratios-700x90.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/5-poor-contrast-ratios-600x78.jpg 600w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><p id=\"caption-attachment-20730\" class=\"wp-caption-text\"><em>Some examples of quick replies that had poor contrast ratios. On the right is the color that was used on our own Intercom Messenger, which fell just below our desired contrast ratio.<\/em><\/p><\/div>\n<h3>3. Personalize quick replies regardless of the action color chosen<\/h3>\n<p>Previously, in an attempt to improve accessibility, when our customers selected an action color that had a very poor contrast ratio against the white background, the Intercom Messenger changed the quick reply color to black.<\/p>\n<div id=\"attachment_20731\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20731\" class=\"size-full wp-image-20731\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/6-button-colors-defaulting-to-black.jpg\" alt=\"\" width=\"800\" height=\"217\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/6-button-colors-defaulting-to-black.jpg 800w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/6-button-colors-defaulting-to-black-300x81.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/6-button-colors-defaulting-to-black-768x208.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/6-button-colors-defaulting-to-black-700x190.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/6-button-colors-defaulting-to-black-600x163.jpg 600w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><p id=\"caption-attachment-20731\" class=\"wp-caption-text\"><em>Some examples of colors where we defaulted the quick reply text and border to black.<\/em><\/p><\/div>\n<p>Our mission is to \u201cmake internet business personal,\u201d and whether our customers got the personalized experience that we promise depended on their choice of action color. Automatically ignoring their choice of action color was not a good enough experience.<\/p>\n<h3>4. Hover state = active state<\/h3>\n<p>Finally, to polish the user experience, we wanted the hover state of the new quick replies to always correspond with their active state.\u00a0In the old design, however, those quick replies that automatically changed to black would also have the black border on hover, but not in the active state. Therefore, the hover state in these situations looked different to the active state, which was not ideal.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-20732\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/7-hover-state-vs-active-state.jpg\" alt=\"\" width=\"855\" height=\"178\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/7-hover-state-vs-active-state.jpg 855w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/7-hover-state-vs-active-state-300x62.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/7-hover-state-vs-active-state-768x160.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/7-hover-state-vs-active-state-700x146.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/7-hover-state-vs-active-state-600x125.jpg 600w\" sizes=\"auto, (max-width: 855px) 100vw, 855px\" \/><\/p>\n<h2 id=\"the-solution\">The solution<\/h2>\n<p>We were not able to find a &#8220;one size fits all&#8221; solution that would meet all the requirements listed above, so we had to take a different approach.<\/p>\n<h3>Default state change<\/h3>\n<p>The new default quick reply button design removes the border and introduces a very light background instead of the white background of the old design. To attain this subtlety, we explored levels of lightness for different colors, where lightness ranges from 0 (for black) to 1 (for white). A lightness of 0.95 seemed to be the right level for achieving the background effect we were looking for:<\/p>\n<div id=\"attachment_20737\" style=\"width: 823px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20737\" class=\"size-full wp-image-20737\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/12-color-examples-with-0.95-lightness.jpg\" alt=\"\" width=\"813\" height=\"98\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/12-color-examples-with-0.95-lightness.jpg 813w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/12-color-examples-with-0.95-lightness-300x36.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/12-color-examples-with-0.95-lightness-768x93.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/12-color-examples-with-0.95-lightness-700x84.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/12-color-examples-with-0.95-lightness-600x72.jpg 600w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><p id=\"caption-attachment-20737\" class=\"wp-caption-text\"><em>A sample of colors with 0.95 lightness<\/em><\/p><\/div>\n<p>Also, the text color is no longer the action color, but instead both the text and the background vary depending on three different sets of logic we devised to automatically attain a contrast ratio around 4.5:1, no matter what action color the customer chooses.<\/p>\n<p>The logic used is contingent on the lightness or darkness of the chosen action color. Given an action color for an app:<\/p>\n<ul>\n<li>If the action color lightness &gt; 0.90\n<ul>\n<li>Background color = action color darkened to a lightness level of 0.85<\/li>\n<li>Text color = action color darkened to a lightness level of 0.30<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div id=\"attachment_20745\" style=\"width: 835px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20745\" class=\"wp-image-20745 size-full\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/8-action-color-lightness-0.95.jpg\" alt=\"\" width=\"825\" height=\"197\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/8-action-color-lightness-0.95.jpg 825w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/8-action-color-lightness-0.95-300x72.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/8-action-color-lightness-0.95-768x183.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/8-action-color-lightness-0.95-700x167.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/8-action-color-lightness-0.95-600x143.jpg 600w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><p id=\"caption-attachment-20745\" class=\"wp-caption-text\"><em>Quick reply end result for a very light action color<\/em><\/p><\/div>\n<ul>\n<li>If the action color lightness &lt; 0.35\n<ul>\n<li>Background color = action color lightened to a lightness level of 0.95<\/li>\n<li>Text color = action color<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div id=\"attachment_20746\" style=\"width: 819px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20746\" class=\"wp-image-20746 size-full\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/9-action-lightness-color-0.30.jpg\" alt=\"\" width=\"809\" height=\"192\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/9-action-lightness-color-0.30.jpg 809w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/9-action-lightness-color-0.30-300x71.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/9-action-lightness-color-0.30-768x182.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/9-action-lightness-color-0.30-700x166.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/9-action-lightness-color-0.30-600x142.jpg 600w\" sizes=\"auto, (max-width: 809px) 100vw, 809px\" \/><p id=\"caption-attachment-20746\" class=\"wp-caption-text\"><em>Quick reply end result for a dark action color<\/em><\/p><\/div>\n<ul>\n<li>If 0.35 \u2264 action color lightness \u2264 0.90\n<ul>\n<li>Background color = action color lightened to a lightness level of 0.95<\/li>\n<li>Text color = action color darkened to a lightness level of 0.30<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div id=\"attachment_20747\" style=\"width: 814px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20747\" class=\"wp-image-20747 size-full\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/10-action-lightness-0.55.jpg\" alt=\"\" width=\"804\" height=\"192\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/10-action-lightness-0.55.jpg 804w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/10-action-lightness-0.55-300x72.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/10-action-lightness-0.55-768x183.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/10-action-lightness-0.55-700x167.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/10-action-lightness-0.55-600x143.jpg 600w\" sizes=\"auto, (max-width: 804px) 100vw, 804px\" \/><p id=\"caption-attachment-20747\" class=\"wp-caption-text\"><em>Quick reply end result for a medium action color<\/em><\/p><\/div>\n<h3>Hover state consistency<\/h3>\n<p>In our new design, the absence of any borders means the hover state will always look the same as the active state. We intentionally built the logic such that the background color of the quick reply is never the same as the action color.<\/p>\n<p>Below are some examples of the old quick reply designs versus the new ones. Observe the contrast ratios, and the difference between the hover and active state for each of them.<\/p>\n<div id=\"attachment_20736\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20736\" class=\"size-full wp-image-20736\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/11-before-and-after-comparison-of-various-button-color-combinations.jpg\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/11-before-and-after-comparison-of-various-button-color-combinations.jpg 960w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/11-before-and-after-comparison-of-various-button-color-combinations-300x169.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/11-before-and-after-comparison-of-various-button-color-combinations-768x432.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/11-before-and-after-comparison-of-various-button-color-combinations-700x394.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/11-before-and-after-comparison-of-various-button-color-combinations-600x338.jpg 600w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-20736\" class=\"wp-caption-text\"><em>The top row represents the active state of quick replies, showing the action color. The middle rows are examples of the default and hover states in the old design, and the bottom two rows are the default and hover states of our new design.<\/em><\/p><\/div>\n<h2 id=\"does-the-new-design-meet-our-own-requirements\">Does the new design meet our own requirements?<\/h2>\n<h3>\u2705 Improved readability<\/h3>\n<p>As a result of these changes, the quick replies become more subtle and simultaneously easier to read. The improved legibility is apparent in the image below:<\/p>\n<div id=\"attachment_20738\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20738\" class=\"size-full wp-image-20738\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons.jpg\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons.jpg 960w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons-300x169.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons-768x432.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons-700x394.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons-600x338.jpg 600w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-20738\" class=\"wp-caption-text\"><em>The before and after of the new quick reply buttons in the Intercom Messenger<\/em><\/p><\/div>\n<h3>\u2705 Improved accessibility<\/h3>\n<p>The logic described as part of our solution was built around the premise of making our quick replies as accessible as possible. Below are some examples of the massive improvement in contrast ratios of our new design versus the previous one.<\/p>\n<div id=\"attachment_20739\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20739\" class=\"size-full wp-image-20739\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/14-improved-button-contrast-ratios.jpg\" alt=\"\" width=\"960\" height=\"243\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/14-improved-button-contrast-ratios.jpg 960w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/14-improved-button-contrast-ratios-300x76.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/14-improved-button-contrast-ratios-768x194.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/14-improved-button-contrast-ratios-700x177.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/14-improved-button-contrast-ratios-600x152.jpg 600w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-20739\" class=\"wp-caption-text\"><em>Improved contrast ratios with the new design<\/em><\/p><\/div>\n<p>Unfortunately, there is no perfect mathematical formula that can ensure we&#8217;ll end up with two colors with a contrast ratio above 4.5:1, especially for brighter colors, like yellow.<\/p>\n<p>However, we did see a significant improvement in accessibility for many of our customers.<\/p>\n<h3>\u2705 Personalized quick replies regardless of the action color chosen<\/h3>\n<p>Like I mentioned at the beginning of the post, when a color had a bad contrast ratio against a white background, we used to default quick replies to being black.<\/p>\n<p>With the new design, instead of compromising a personalized experience in order to ensure accessibility, we now ensure it by tuning the lightness levels of the action color for the text and background.<\/p>\n<div id=\"attachment_20740\" style=\"width: 815px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20740\" class=\"size-full wp-image-20740\" src=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/15-background-color-adjustments-to-improve-accessibility.jpg\" alt=\"\" width=\"805\" height=\"205\" srcset=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/15-background-color-adjustments-to-improve-accessibility.jpg 805w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/15-background-color-adjustments-to-improve-accessibility-300x76.jpg 300w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/15-background-color-adjustments-to-improve-accessibility-768x196.jpg 768w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/15-background-color-adjustments-to-improve-accessibility-700x178.jpg 700w, https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/15-background-color-adjustments-to-improve-accessibility-600x153.jpg 600w\" sizes=\"auto, (max-width: 805px) 100vw, 805px\" \/><p id=\"caption-attachment-20740\" class=\"wp-caption-text\"><em>With the new design, when the action color choice is light, we find two shades of the color that ensure a good contrast ratio.<\/em><\/p><\/div>\n<h3>\u2705 Hover state = active state<\/h3>\n<p>Last but not least, the new quick reply design guarantees that the hover state will always be identical to the active once the button is clicked. This improves the design quality and user experience of our Messenger.<\/p>\n<h2 id=\"spreading-accessibility\">Spreading accessibility<\/h2>\n<p>With the old design, 9.9% of our customers&#8217; messengers had a quick reply design with a contrast ratio below 4.5:1 and that therefore did not meet our desired accessibility bar. With the new design, only 2.1% of our customers&#8217; messengers don&#8217;t meet the desired ratio \u2013 this is five times better.<\/p>\n<p>We also looked at a lower ratio of 3:1, under which accessibility is very poor. For the old design, we found 5.5% of our customers&#8217; messengers had quick replies with a contrast ratio lower than this \u2013 while with the new design, only 0.07% of those messengers had a contrast ratio lower than 3:1. This is 78 times better with the new design, a remarkable improvement.<\/p>\n<p>It also demonstrates how making the web truly accessible for everyone depends on sweating a lot of details, but when you get those details right, the benefits can be felt far and wide.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Making the web truly accessible for everyone depends on sweating a lot of details, and when you get those details right, the benefits can be felt far and wide.<\/p>\n","protected":false},"author":411,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"category":[12898],"tags":[17545],"coauthors":[17533],"class_list":["post-20703","post","type-post","status-publish","format-standard","hentry","category-engineering","tag-accessibility"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Hot Button Issue: Improving Accessibility In The Messenger<\/title>\n<meta name=\"description\" content=\"We revisited the color contrast ratios of the Intercom Messenger \u201cquick reply\u201d buttons to ensure we met the highest web accessibility standards.\" \/>\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.intercom.com\/blog\/accessibility-buttons-messenger\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hot button issue: Improving accessibility in the Messenger\" \/>\n<meta property=\"og:description\" content=\"We revisited the color contrast ratios of the Intercom Messenger \u201cquick reply\u201d buttons to ensure we met the highest web accessibility standards.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/\" \/>\n<meta property=\"og:site_name\" content=\"The Intercom Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/intercominc\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-25T16:21:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-30T11:54:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paula Lopez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@plopezpozuelo\" \/>\n<meta name=\"twitter:site\" content=\"@intercom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paula Lopez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/\"},\"author\":{\"name\":\"Paula Lopez\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/477074b835758473171110327ba8c2df\"},\"headline\":\"Hot button issue: Improving accessibility in the Messenger\",\"datePublished\":\"2019-06-25T16:21:03+00:00\",\"dateModified\":\"2020-07-30T11:54:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/\"},\"wordCount\":1574,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1-old-button-design.jpg\",\"keywords\":[\"accessibility\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/\",\"name\":\"Hot Button Issue: Improving Accessibility In The Messenger\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1-old-button-design.jpg\",\"datePublished\":\"2019-06-25T16:21:03+00:00\",\"dateModified\":\"2020-07-30T11:54:37+00:00\",\"description\":\"We revisited the color contrast ratios of the Intercom Messenger \u201cquick reply\u201d buttons to ensure we met the highest web accessibility standards.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/accessibility-buttons-messenger\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1-old-button-design.jpg\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/1-old-button-design.jpg\",\"width\":1400,\"height\":1151,\"caption\":\"How quick reply buttons used to appear in the Intercom Messenger\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"name\":\"The Intercom Blog\",\"description\":\"Articles and Podcasts on Customer Service, AI and Automation, Product, and more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\",\"name\":\"The Intercom Blog\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"width\":1000,\"height\":1000,\"caption\":\"The Intercom Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/intercominc\",\"https:\\\/\\\/x.com\\\/intercom\",\"https:\\\/\\\/www.instagram.com\\\/intercom\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/2491343\",\"https:\\\/\\\/www.pinterest.ie\\\/intercom\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJG0MvLP03kyzzAkD-w98aQ\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Intercom_(company)\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/477074b835758473171110327ba8c2df\",\"name\":\"Paula Lopez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9422cd6e98bc2af68d219df105ffbb7b823658b749063f84a713ea52fc1e1945?s=96&d=mm&r=pgb02356557120b59371b50eda05dab8fc\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9422cd6e98bc2af68d219df105ffbb7b823658b749063f84a713ea52fc1e1945?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9422cd6e98bc2af68d219df105ffbb7b823658b749063f84a713ea52fc1e1945?s=96&d=mm&r=pg\",\"caption\":\"Paula Lopez\"},\"description\":\"Paula is a Product Engineer at Intercom, based in London. Paula joined Intercom in April 2018 from Songkick where she was a Tech Lead.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/plopezpozuelo\"],\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/author\\\/plopezpozuelo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hot Button Issue: Improving Accessibility In The Messenger","description":"We revisited the color contrast ratios of the Intercom Messenger \u201cquick reply\u201d buttons to ensure we met the highest web accessibility standards.","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.intercom.com\/blog\/accessibility-buttons-messenger\/","og_locale":"en_US","og_type":"article","og_title":"Hot button issue: Improving accessibility in the Messenger","og_description":"We revisited the color contrast ratios of the Intercom Messenger \u201cquick reply\u201d buttons to ensure we met the highest web accessibility standards.","og_url":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/","og_site_name":"The Intercom Blog","article_publisher":"https:\/\/www.facebook.com\/intercominc","article_published_time":"2019-06-25T16:21:03+00:00","article_modified_time":"2020-07-30T11:54:37+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/13-before-and-after-of-quick-reply-buttons.jpg","type":"image\/jpeg"}],"author":"Paula Lopez","twitter_card":"summary_large_image","twitter_creator":"@plopezpozuelo","twitter_site":"@intercom","twitter_misc":{"Written by":"Paula Lopez","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/#article","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/"},"author":{"name":"Paula Lopez","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/477074b835758473171110327ba8c2df"},"headline":"Hot button issue: Improving accessibility in the Messenger","datePublished":"2019-06-25T16:21:03+00:00","dateModified":"2020-07-30T11:54:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/"},"wordCount":1574,"publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design.jpg","keywords":["accessibility"],"articleSection":["Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/","url":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/","name":"Hot Button Issue: Improving Accessibility In The Messenger","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/#primaryimage"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design.jpg","datePublished":"2019-06-25T16:21:03+00:00","dateModified":"2020-07-30T11:54:37+00:00","description":"We revisited the color contrast ratios of the Intercom Messenger \u201cquick reply\u201d buttons to ensure we met the highest web accessibility standards.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/accessibility-buttons-messenger\/#primaryimage","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design.jpg","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/06\/1-old-button-design.jpg","width":1400,"height":1151,"caption":"How quick reply buttons used to appear in the Intercom Messenger"},{"@type":"WebSite","@id":"https:\/\/www.intercom.com\/blog\/#website","url":"https:\/\/www.intercom.com\/blog\/","name":"The Intercom Blog","description":"Articles and Podcasts on Customer Service, AI and Automation, Product, and more","publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intercom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intercom.com\/blog\/#organization","name":"The Intercom Blog","url":"https:\/\/www.intercom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","width":1000,"height":1000,"caption":"The Intercom Blog"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/intercominc","https:\/\/x.com\/intercom","https:\/\/www.instagram.com\/intercom\/","https:\/\/www.linkedin.com\/company\/2491343","https:\/\/www.pinterest.ie\/intercom\/","https:\/\/www.youtube.com\/channel\/UCJG0MvLP03kyzzAkD-w98aQ","https:\/\/en.wikipedia.org\/wiki\/Intercom_(company)"]},{"@type":"Person","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/477074b835758473171110327ba8c2df","name":"Paula Lopez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9422cd6e98bc2af68d219df105ffbb7b823658b749063f84a713ea52fc1e1945?s=96&d=mm&r=pgb02356557120b59371b50eda05dab8fc","url":"https:\/\/secure.gravatar.com\/avatar\/9422cd6e98bc2af68d219df105ffbb7b823658b749063f84a713ea52fc1e1945?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9422cd6e98bc2af68d219df105ffbb7b823658b749063f84a713ea52fc1e1945?s=96&d=mm&r=pg","caption":"Paula Lopez"},"description":"Paula is a Product Engineer at Intercom, based in London. Paula joined Intercom in April 2018 from Songkick where she was a Tech Lead.","sameAs":["https:\/\/x.com\/plopezpozuelo"],"url":"https:\/\/www.intercom.com\/blog\/author\/plopezpozuelo\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/20703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/users\/411"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/comments?post=20703"}],"version-history":[{"count":0,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/20703\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media?parent=20703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/category?post=20703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/tags?post=20703"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/coauthors?post=20703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}