Accessibility Statement
Last updated: June 2026
1. Our Commitment to Accessibility
At MaOchlim (What Are We Eating) (MaOchlim Technologies Ltd., Co. No. 517328597) we are committed to making our app and website accessible to all users, including people with disabilities, in accordance with the Israeli Equal Rights for Persons with Disabilities Regulations (Service Accessibility Adjustments), 2013 and the international standard WCAG 2.1 Level AA.
2. Conformance Level
The app and website conform to Level AA of WCAG 2.1, including:
- Screen reader support for VoiceOver (iOS) and TalkBack (Android)
- Minimum color contrast ratio of 4.5:1 for normal text
- Minimum touch target size of 44×44 points
- Support for dynamic font scaling on the device
- Accessibility labels (
aria-label) on every button, field, and dish card - Logical focus order in all forms
- Correct language tag (
lang="he") and RTL direction - "Skip to main content" link for keyboard navigation
3. Accessible Features
- Dish cards – full spoken description: name, restaurant, rating, tags, and like/save state
- Star rating system – each star is a toggle button with a checked state; 44pt touch area via hitSlop
- Create & edit visit forms – field labels on every TextInput; "would order again" and "worth another visit" as toggles with state; save/continue buttons with disabled state; date picker; add/remove dish buttons; restaurant Place Search autocomplete – labelled input and dropdown items as buttons with labels; dish name autocomplete (DishNameInput) – labelled input, bilingual clear button, and a screen-root overlay suggestion list with labelled items; tagging multiple rolls on a single photo (RollTagger / RollPinModal / MultiRollModal) – labelled add/remove pin buttons, labelled price field, labelled rating and "would order again" toggles; the "how many rolls on the photo" modal has a closable backdrop and a labelled action button; Happy Hour toggle (available at places Google tags as a bar; also available in the rolls editor) with switch role and checked state, and a labelled "Happy Hour price" field shown when the toggle is on; Meal Deal (burger deal) toggle with switch role and checked state, and a labelled "Meal Deal price" field shown when the toggle is on
- Settings screen – label on push notification Switch; label on the "Show kosher restaurants only" Switch; labels on all action rows; kosher sub-certification picker (shown when the "Kosher only" Switch is on) – labelled TagChip selections and a labelled info button (i icon); account deletion reason survey – options as radio buttons with selected state, labelled free-text field, and cancel/continue buttons with labels and disabled state
- Auth screens – sign in, sign up, and OTP verification buttons with labels and roles; kosher-preference selection buttons in sign-up and complete-profile screens with labels, role, and selected state; password reset screen with labelled fields and a submit button with disabled state
- Dish detail screen – like, share, edit, and delete buttons with labels; actions menu (rate dish, save, report) with labels on every option; report menu with labels on each reason (inappropriate/spam/harassment/other)
- Restaurant screen – save, share, and open-in-maps buttons with labels; tabs with selected state; course filter chips (starter / main / dessert) with label and selected state
- Profile screen – tabs with selected state; follower/following stat buttons; saved dish, restaurant, and "Want to Try" rows with labels and button role, each with a labelled inline remove button; profile picture opens an enlarged viewer modal with a close label; Profile Crowns – each category king/queen badge is a button with the title as its label (e.g. "Pizza King") that navigates to the Throne Room
- User profile screen – follow/unfollow buttons with dynamic labels; social media buttons (Facebook, Instagram, TikTok) with link role and labels; more-options button; profile picture opens an enlarged viewer modal; Profile Crowns showing the user's category-king badges with the title as label and a navigation to the Throne Room
- Notifications screen – each notification row with a dynamic spoken description; delete and mark-all buttons
- Dish aggregate page – gallery, reviews, and restaurant detail buttons with labels; "Want to Try" add/remove button (togglebutton with checked state) with a dynamic label
- Dish share page – image with alt text; rating with spoken description
- Full visit page – share and edit buttons with labels; vibe tags with spoken descriptions; restaurant and user profile navigation with labels; "Navigate to restaurant" button (NavigateToRestaurantButton) next to the restaurant name with button role and a label for opening in maps; per-dish inline action row (like as togglebutton with checked state, comments as button with comment count, save as togglebutton with checked state, share as button) — each properly labelled
- Discover & search screen – filter tabs with selected state; emoji dish-type, time, and vibe filter chips with checked state; custom dish-type dropdown with checked state; sort buttons (rating/distance) with dynamic label and dropdown items as radio buttons with state, also in the tags tab; search history rows with delete buttons; dish cards and search results with spoken descriptions; search field with label; autocomplete dropdowns with labels; vibe algorithm info modal – labelled closable backdrop and labelled "Got it" button
- Contact screen – topic selector button with state; all topic options as radio buttons with checked state; message field with label; send button with disabled state
- Gamification (levels) – level-up modal with labeled continue and share buttons; publish success toast announced to screen readers; King Crowned modal with labelled "To the Throne Room" and "Continue" buttons; Welcome modal with slide navigation, pagination dots with selected state, and a labelled action button
- Bottom navigation bar – each tab with role=tab and selected state; a new "Search" tab that opens the search screen is labelled as a button (not a stateful tab) with the label "Search" / "חיפוש"; unread notification count announced in the tab label; a blue dot indicating new group-chat messages on the "Friends" tab is also announced in the tab label
- Camera interface – capture, flash (toggle with state), and cancel buttons with labels; composition grid lines marked as decorative
- Followers / Following screen – back button and user rows with labels; inline follow/unfollow button on each row with a dynamic label
- All dish ratings screen – sort chips with checked state; review cards and profile navigation with labels
- Tag chips (TagChip) – when interactive: checkbox role with checked state; when display-only: readable label for screen readers
- User avatars (UserAvatar) – accessibility label with the user's name; initials fallback similarly labelled
- Achievements flow – Features & achievements screen: feature-open buttons with labels, progress bar marked as decorative; Leaderboard screen: profile buttons with name and rank in spoken description, period tabs with selected state, view switcher between "Reviewers Order" and "Throne Room" with tab role and selected state, category-king cards with labels; Culinary DNA screen: radar chart marked as decorative, score items with full spoken labels (name + value out of 5), share and back buttons; Flavor Map screen: map markers with restaurant name and visit count, navigation and close buttons
- Global Location Selector – pill button in the main header with a dynamic label of the active location; sheet with a labelled "Use current location" (GPS) button, labelled address search field, autocomplete results with labels, and a closable modal backdrop with a label; the grab-handle at the top of the sheet is labelled as a close button (accessible without the swipe gesture); swipe-down-to-close is supported but not required for accessibility
- Home screen (For You) – notifications button with dynamic label including unread count; tag filtering – chip row with a labelled filter button, labelled category chips with remove labels, and a bottom sheet (TagFilterSheet) for multi-tag selection with a closable backdrop and two labelled action buttons (Clear / Apply); the grab-handle at the top of the sheet is labelled as a close button (accessible alternative to the swipe gesture); visit-type chips (dine-in / delivery) in TagFilterSheet with label and checked state; labelled "Surprise Me" button; feed retry button with label; pull-to-refresh supported; tapping the Home tab again scrolls the feed back to the top
- Friends stories on the home screen (FriendsStories) – each story is a button with a dynamic spoken description (user's name); intro circle for first-time users with a label; Stories explainer modal (StoriesIntroModal) with a labelled closable backdrop and a labelled action button
- Friend Today screen – labelled back button; visit cards with labels and a labelled "View Full Visit" button; restaurant name shown as a labelled link that navigates directly to the restaurant screen
- Restaurant History screen – labelled back and retry buttons; previous-visit cards with a labelled "View Full Visit" button
- In-app Terms of Service screen – labelled back button
- "MaOchlim world locked" modal – labelled closable backdrop and a fully labelled "Got it" button
- Friends Group (Social Food Squad) – Group hub: labelled back button and options menu, group switcher with tab role and selected state, labelled "New Group" button, member and invite buttons with labels, recommended dish cards and poll/challenge calls-to-action with labels; Create Group screen: labelled name field, emoji picker as radio buttons with selected state, create button with disabled state; Edit Group screen: labelled name field, emoji picker as radio buttons with selected state, save button with disabled state; Manual join-by-code screen: labelled invite code field and continue button with disabled state; Group members screen: labelled back button, member rows with names and a labelled remove-member button; Group rankings screen: labelled back button and rank rows with name and category value; Create challenge screen: template picker as radio with selected state, labelled increment/decrement buttons for the target, and start button with disabled state; Create poll screen: option chips as checkboxes with checked state and start button with disabled state; Poll card: labelled end button and vote options as radio with selected state; Challenge card: labelled end button; Rankings grid: labelled "See all" button and labelled grid cells, including a new "Spending" cell with a show/hide-spending button with a dynamic label and a labelled info button; Group chat card (SquadChatCard): mute/unmute toggle button with selected state, labelled "Load older messages" button, message bubbles as buttons with sender + content in the label and an accessibilityHint for follow-up actions, labelled "quick bite" chips, labelled message input field, and a send button with disabled state; Group invite (join) screen: join, "Not now", and "Back to home" buttons with labels and disabled state
- Unified search panel (SearchPanel) – opens from a search button in the home header; labelled close and clear buttons; labelled search field; category tabs (dishes / restaurants / addresses / users / tags) with tab role and selected state; vibe filter chips with checked state; result rows (restaurants, users) and autocomplete items with labels; search history rows with delete buttons; vibe-algorithm info button with a label; labelled "Show on map" buttons (in both the vibe restaurants section and the nearby restaurants section)
- "Restaurants nearby" screen (nearby-map) – map with restaurant pins; labelled back button, selected-restaurant card with labelled close and "View Restaurant" buttons; empty state when no restaurants are in radius
- Loading indicators (DonutLoader / LoadingOverlay) – LoadingOverlay includes a progressbar role and a "loading" label for screen readers
- Welcome modal – horizontal swipe gesture to page between slides (gesture-handler); a labelled link inside the slide body opens the levels info modal with a link role; tutorial overlay highlighting on-screen elements is purely decorative — the real underlying controls remain accessible
- Surprise Wheel (SurpriseWheelOverlay) – spinning category-picker wheel; the backdrop is a labelled close/skip button; the wheel, confetti, and winner banner are marked pointerEvents="none" as decorative
- In-app alert dialog (AppAlert) – all buttons have a button role; the title edit button (when applicable) has a bilingual label ("Edit" / "עריכה")
- Feature intro modal (FeatureIntroModal) – shared first-open explainer for Culinary DNA, Flavor Map, and Top Reviewers; labelled closable backdrop, the inner card is marked `accessible="false"`, and a labelled primary action button
- Multi-dish upload hint modal (MultiDishHintModal) – labelled "Add another dish" and "Continue" action buttons
- Duplicate-visit warning modal (DuplicateVisitModal) – labelled primary and secondary action buttons
- Roll Group screen – labelled back, edit, and share buttons; tappable author row with a label leading to the profile; each roll inside the group is a labelled button that opens the individual review; Roll Group card (RollGroupCard) on multi-roll dishes with a navigation label to the group page; multi-price stack (when the dish has several rolls) has an accessibilityLabel listing all prices
- Landing website – keyboard navigation, skip-to-content link, decorative icons hidden from assistive technology, visible focus ring
4. Known Limitations
We are continuously working to improve. Current known limitations:
- Third-party content (e.g. restaurant locations from Google Places) may not include full accessibility labels.
- Maps and geographic location views – map pins (markers) are accessible with restaurant name and visit count; the map interaction itself is not fully accessible in the current version.
5. Contact Us
Encountered an accessibility issue or need an accommodation? We're happy to help.
You can reach us directly at: [email protected]