There is a category of ingredient that appears in an enormous number of restaurant dishes and on almost no menus. It is not a conspiracy, and no regulation is being dodged. It is a difference in how kitchens and diners think about what an ingredient is.
The medium is not an ingredient
Ask a Thai cook what is in a stir-fried vegetable dish and they will tell you: the vegetables, the garlic, the chilli. They will not say fish sauce, for the same reason an English cook would not say "salt" when listing what is in a roast potato. Fish sauce is the salt. It is the medium the food sits in.
The same logic produces:
- Dashi in Japanese simmered dishes and broths — usually made with dried bonito, which is why a vegetable dish is often not vegetarian
- Oyster sauce in Chinese stir-fries, especially plain greens
- Ghee as the default cooking fat in many Indian kitchens
- Lard in traditional refried beans and tamale masa
- Anchovy dissolved into the base of Italian sauces, where it reads as depth
- Shrimp paste in curry pastes with no visible seafood
Every one of those is invisible on a menu, and every one is a common reason someone's meal goes wrong.
Menu labelling laws cover less than people assume
Allergen labelling rules — EU FIC, the US FALCPA/FASTER framework — govern particular allergen categories and particular contexts, and in many jurisdictions a restaurant satisfies them by having the information available on request rather than printed on the menu. A dish being unlabelled is frequently full compliance, not a violation.
And none of it covers "this is fish-based" as a general fact. Fish sauce is not a top allergen in most frameworks. A vegetarian is not a protected category. The regulation was never designed to answer the question most diners are asking.
What follows from this
Three practical consequences:
- A translation does not help. Translating a menu that omits fish sauce produces an English menu that omits fish sauce.
- The question to ask is specific, not categorical. "Is there fish sauce in this?" gets a fast, accurate answer. "Is this vegetarian?" invites a judgement call about what you mean.
- Silence is not clearance. If nothing was flagged, nothing was found — which is not the same as nothing being there.
What TableSage does with this
It reads the dish rather than the description, and separates what the menu said from what the dish usually contains — marking the second group explicitly as not printed.
It will never tell you a dish is safe. Recipes vary between restaurants and change without notice, so what it gives you is a much shorter list and a specific question to ask. The staff always have the final word.
You can try that on a real Thai menu on the homepage, without installing anything.



