App: [med] Color Contrast: Many Pages: Input controls grey border against adjacent white fails contrast
Action Performed:
Prerequisite: user has created personal account and is logged into same.
- Using Chrome, open https://staging.new.expensify.com/
- Click on the new chat floating action icon button (+) in the left side panel and select ‘New Group’
- In the ‘New Group’ side-panel overlay, inspect the contrast ratio of the light grey border around the search input field against the adjacent white background.
Expected Result:
The graphical information required to identify user interface components must have a contrast ratio of at least 3.00:1 against adjacent colors. In this case, the input field is visually identified by a light grey border that shows its position, size and lets users know where to click, tap, etc. The border color must have a contrast ratio greater that 3.00:1 against the adjacent white background.
Actual Result:
The light grey border (#ECECEC) against the adjacent white background (#FFFFFF) has a contrast ratio of 1.18:1, rendering it almost invisible (1.0:1).
HTML:
<input placeholder="Name, email, or phone number" autocapitalize="sentences" autocomplete="on" autocorrect="on" dir="auto" spellcheck="true" type="text" class="css-11aywtz r-tz77pi" value="" style="background-color: rgb(255, 255, 255);border-color: #ececec;border-radius: 8px;border-width: 1px;color: rgb(11, 27, 52);font-family: GTAmericaExp-Regular;font-size: 15px;height: 42px;padding: 10px 12px;vertical-align: middle;">
CSS:
element.style { background-color: rgb(255, 255, 255); border-color: #ececec; ... }
Other occurrences:
- The grey circle for custom checkboxes adjacent to contact names in the panel has the same color contrast ratio.
- Chat:
- Search panel search field
- Emoji panel search field
- Chat Message field
Workaround:
No workaround
Area issue was found in:
Create new group overlay, Chat page
Failed WCAG checkpoints
1.4.11
User impact:
Many colorblind and other sight impaired users will not identify the area as a control and may not know where to click.
Suggested resolution:
Use a darker shade of grey for the border color, such as #919191, which will give a color contrast ratio of 3.15:1.
Platform:
Where is this issue occurring?
- Web
Version Number:
**Reproducible in staging?😗*Yes
Reproducible in production?:
Notes/Photos/Videos: Any additional supporting documentation
Issue reported by:

About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 30 (27 by maintainers)
Commits related to this issue
- #5521 — committed to mateomorris/App by mateomorris 3 years ago
As discussed here, we’re going to close the PR but we want to make sure @mateomorris gets paid for his work. @stephanieelliott can you go ahead and make sure Mateo gets paid and then we can close this one out? Thanks!
All set and paid in Upwork. Thanks @mateomorris!
Still under discussion in slack internally here
Hired on Upwork, thanks @mateomorris!
Sounds good, thanks for the heads up @parasharrajat 💪
There is nothing much to review in the code, it’s mostly about swapping the variable with correct values. So I would leave this to the CME to review. See More. cc: @Beamanator
Thanks.
This is on Upwork here: https://www.upwork.com/jobs/~019b45fec6e1a6cdcc
@Beamanator thanks for the message. At present I am not ready to work on this issue. So it will be ok to handover others. Thanks.
Thanks for doing that. I still think my proposed solution to have two border colors (one for components, one for accents) would be great here.
Okay so what I would recommend doing here… in
colors.jswe can modify our grays a bit:change that to
~Then from there, you will want to make sure the
bordercolor inthemes/default.jsusesgray4.~ (updated here)Bonus points if you want to update the supporting text/label color issue, which you could just update
textSupportingtogray5Bonus points if you want to tackle the icon color issue here too, which you could just update
iconto usegray4and it will pass contrast tests.Let me know how all of that sounds!
Started a conversation over in #accessibility about this
Yeah I think the solution is as simple as just changing out the border color we use to a darker shade. That being said, I do think @Expensify/design should take a look at these accessibility issues altogether and chat about them quickly internally to make sure we are finding the right new colors to use in these situations. Going to assign to myself for now.