Accessibility
What works, what does not yet, and how to tell us
Last updated 25 August 2026. Questions to support@ya-habibi.co.uk.
Version 2026-08-25. In force from 25 August 2026.
Older versions are kept and we will send you any of them if you ask at support@ya-habibi.co.uk. There is no archive inside the app yet, and saying there was one would be the kind of promise this document is trying not to make.
This is a statement about what Ya Habibi actually does, measured rather than intended. Where something does not meet the standard, it says so and gives the number. A statement that only listed what works would not be worth reading.
Ya Habibi is measured against WCAG 2.2 level AA, which is the standard the Public Sector Bodies Accessibility Regulations use in the UK and the standard the European Accessibility Act points at. Ya Habibi is not a public sector body and is not currently in scope of either, so this is held to voluntarily.
This document was prepared for review. It is not legal advice and it has not been reviewed by a qualified solicitor. The last section lists what a qualified person should sign off.
If something in Ya Habibi is unusable for you, write to support@ya-habibi.co.uk and say what you were trying to do. That is not a form letter: the list at the bottom of this document is what people have told us and what we have found, and it is the list we work from.
What was measured, and how
Everything below was checked on 14 August 2026 against the code, not against a design. Contrast ratios were computed from the actual colour values in the app's single palette file. Text scaling was checked by rendering screens at the largest size the app permits. Reduce motion was checked by finding every animation in the app and seeing which ones ask the system setting.
What works
Text size
Ya Habibi follows the text size set on your phone, up to 1.5 times the normal size. Above that it stops growing.
The cap is deliberate and it is a trade. Beyond about 1.5 times, screens with a lot of text on them start to lose their shape faster than they gain readability, and the app would rather be legible than technically compliant and broken. If you need larger text than this, the phone's own Zoom (iOS) or Magnification (Android) works over Ya Habibi and is not capped.
Every screen is checked at 1.5 times as part of the test suite. One screen, the sign in and create account form, overflowed at that size for months; that was found by the test, measured at 512 points of overflow, and fixed on 14 August 2026 by letting the two links under the button stack instead of sitting side by side.
Tap targets
Every control in the app is at least 44 by 44 points, which is the size both Apple and WCAG 2.2 (success criterion 2.5.8) ask for. The number is written once in the app's design tokens and referred to in 119 places across 60 files, rather than typed out per screen, which is what stops one screen drifting.
That was not true when this document was first drafted, and the way it became true is worth recording, because it is the reason this statement is written from measurements rather than from a reading of the code.
Seven controls were measured and failed. Each of them computed its own size from a glyph and a padding instead of from the token, so each one looked correct when read and was wrong in one direction when measured:
| Control | Was | Now |
|---|---|---|
| The like, dislike and repost row on a post | 22 wide | 44 |
| The same row inside a thread | 21 by 43 | 44 |
| The Follow button | 31 tall | 44 |
| Stop replying | 28 by 28 | 44 |
| Remove an attachment | 22 by 22 | 44 |
| Join a circle, in search | 34 tall | 44 |
| The filters on the Study screen | 38 tall | 44 |
In every case the visible shape is unchanged and only the area a thumb has to hit grew. A slim pill is a design decision; it does not have to cost the target.
There is now a test that measures a control's real hit box rather than reading its padding, because reading the padding is exactly what missed all seven.
Screen readers
Ya Habibi works with VoiceOver on iOS and TalkBack on Android.
Every control that is an icon with no words next to it carries a name. That was audited on 14 August 2026 and one gap was found and fixed: the five stars in the restaurant review sheet were five identical unlabelled buttons, so a screen reader announced "button" five times with no way to tell them apart. They now announce "1 star" through "5 stars".
Decorative marks are hidden from screen readers rather than read out. A bullet in a list, the small icon beside an explanatory sentence, and the glyph inside a labelled button are all excluded, so a document with forty bullets does not announce "bullet" forty times.
Reduce motion
If you have Reduce Motion switched on in your phone's accessibility settings, Ya Habibi's animations do not play. Screens are simply there rather than sliding in.
Every duration in the app goes through one function that returns zero when the setting is on. That was audited on 14 August 2026: 36 animations already went through it and four did not, so the tab bar's selected pill, the badge picker, a filter chip and the reply screen's send button still animated for somebody who had asked the whole phone not to. All four now honour it.
Haptic feedback deliberately survives Reduce Motion. A haptic is feedback rather than animation, and removing it makes controls feel broken rather than calm.
Colour is not the only signal
Nothing in Ya Habibi is communicated by colour alone. A liked post shows a filled heart as well as a colour. A selected tab shows a filled pill and its label. A username that is taken says so in words under the field as well as changing the icon. An unread message is a dot next to a name, and the name is also bold.
Links inside a post, a reply or one of these documents are underlined as well as coloured. They were not until 14 August 2026: a link was the brand violet and nothing else, which measures 2.44:1 against the surrounding text in the light theme, and the standard asks for 3:1 when colour is the only cue.
Signing in with a screen reader
The screen that asks for the six digit code we email you is usable with VoiceOver and TalkBack.
It was not, and this was the most serious thing this audit found. The field is drawn as six boxes with an invisible input behind them, so that a phone can autofill the code from the mail it has just seen. The invisible input was invisible to screen readers as well, and the six boxes over it are decoration with nothing focusable in them. Because every screen in Ya Habibi is behind the sign in, and because this screen is on the way in, the effect was not an awkward screen: it was no way into the app at all. Fixed on 14 August 2026 by telling the framework to keep the field in the accessibility tree even at zero opacity.
Working offline, and without an account
Prayer times, the qibla direction, the Quran text and the worship tracker are calculated or stored on the device and work with no network. This matters for accessibility as much as for travel: an app that needs a connection to tell you when Maghrib is, is an app that fails when you most need it.
The app does require an account to open at all, which is a separate decision and is described in the Terms of Use.
What does not meet the standard yet
These are the honest gaps, with the measured numbers.
Small grey text is below the contrast minimum in the light theme
WCAG AA asks for a contrast ratio of at least 4.5:1 for normal-sized text.
In the light theme, the palette's faintest grey measures 2.57:1 on white. It is used for timestamps on posts, view counts, hint text inside empty fields, and the date under a document heading. All of those are supporting information rather than anything you need to act on, and none of them is the only place that information appears, but 2.57:1 is well under the standard and this document is not going to pretend otherwise.
The second-faintest grey, used for most explanatory text, measures 5.70:1 on white and 5.18:1 on the tinted panels in the Ummah, both of which pass.
In the dark theme the same faint grey measures 4.09:1 on a card, which passes for large text and just misses for normal-sized text.
What would fix it: one value in the palette file, darkened. It has not been changed unilaterally because the palette is a set of deliberate decisions with reasons written against each one, and changing a colour that appears on every screen in the app is the owner's call rather than an accessibility audit's.
Violet text on the dark theme is well below the minimum
The Ya Habibi violet is #4A28E0 and it is the same value in both themes, which is a deliberate decision by the owner: a person switching themes must not see the brand change colour. This was tried the other way, with a lighter violet in dark mode, and was rejected.
That decision has a measurable cost and it is recorded in the app's own palette file. Violet text on the dark theme measures:
| Where | Ratio | Verdict |
|---|---|---|
| Violet text on a dark card | 2.38:1 | Fails AA |
| Violet text on the black page | 2.67:1 | Fails AA |
| Violet text on a violet-tinted panel | 2.19:1 | Fails AA |
| White text on a violet fill | 7.86:1 | Passes AA comfortably |
So violet as a background with white on it is fine everywhere, and it is how the app uses violet most of the time: buttons, the selected tab, the composer's outline. Violet as text on the dark theme is the problem, and it appears on small labels and links.
What would fix it: drawing those labels in the ordinary text colour instead of the brand, which is what the palette file itself recommends. That is a change across several screens and it has not been made yet.
In the light theme the same violet measures 7.86:1 on white and passes comfortably, so this affects dark mode only.
The alert colour is borderline in the light theme
The colour used for errors and unread marks measures 3.48:1 on white. That passes for large text and for a solid shape such as a dot or a pill, which is almost always how it is used, and fails for a normal-sized sentence. Error sentences drawn in it are the case to look at.
In the dark theme the same colour measures 6.29:1 and passes.
Things we have not tested properly yet
Said plainly rather than left out:
- Switch control and voice control have not been tested on a device.
- Braille displays have not been tested.
- The Arabic text in the Quran is rendered in a display face at a size you can change, and it has not been checked with a screen reader in Arabic.
- The prayer times chart and the qibla compass are visual by nature. The compass announces the direction as a number, and the times are all available as a list, but neither has been reviewed by somebody who uses a screen reader daily.
- No user testing with disabled people has been done at all. Everything in this document is measurement and code review. That is a real limitation and it is the most important item on this list.
The standard, precisely
Ya Habibi is partially conformant with WCAG 2.2 level AA. Partially conformant means most of the standard is met and the parts that are not are listed above.
The specific criteria not met are:
- 1.4.3 Contrast (Minimum), for the faint grey in the light theme, the violet used as text in the dark theme, and the alert colour used as a sentence in the light theme.
- 1.4.4 Resize Text, partially: text scales to 1.5 times and not to the 2 times the criterion asks for. The phone's own magnification covers the gap and the reason for the cap is above.
Every other level AA criterion that applies to a mobile app was checked and is either met or is not applicable.
Telling us
Write to support@ya-habibi.co.uk, or open Help and Support inside the app, or use the Staff Live Chat row at the top of Messages. A person reads all three.
Tell us what you were trying to do, what happened, and what you use: VoiceOver, TalkBack, a larger text size, Reduce Motion, or something else. That is more useful than a description of the bug on its own, because it tells us how to reproduce it.
We aim to reply within five working days. If you are not happy with the reply, say so in the same thread and it goes to somebody else.
What still needs a solicitor
- Whether Ya Habibi falls within the scope of the European Accessibility Act, which applies to e-commerce and certain services from June 2025. Ya Habibi is free and sells nothing today, which is why this document treats WCAG as voluntary, but the halal food directory involves businesses and that position should be checked before any paid feature exists.
- Whether the Equality Act 2010 duty to make reasonable adjustments applies to a free consumer app, and what "reasonable" means for the specific gaps listed above.
- Whether this statement needs to follow the model accessibility statement format required of public sector bodies. It is written in that shape deliberately, but Ya Habibi is not a public sector body and is not bound to it.
Version history
2026-08-25. The version in force.
2026-08-14. Superseded.
Who publishes this document
Ya Habibi is a trading name of DAPPER TRADING LTD, a company registered in England and Wales, company number 8800299. Registered office, which is also the address for service of any legal notice: Oak House, Reeds Crescent, Watford, WD24 4QP, United Kingdom. VAT number 190396586. Ya Habibi is part of the Webmasters LDN group, webmastersldn.com, which is also a trading name of the same company.
Contact: support@ya-habibi.co.uk, or in writing to the registered office above.