In Cantonese Yale romanisation, the letter h does two entirely different jobs depending on where it sits. At the start of a syllable it is the sound you expect. At the end, after the vowel, it is silent — it is not a sound at all but half of the tone marking. Beginners working from a Yale textbook pronounce it, and it is one of the fastest ways to sound wrong to a native speaker.
Two channels, one tone
Standard Cantonese has six tones. Yale romanisation encodes each tone using two markers instead of one.
The first is the contour, written as a diacritic over the vowel: a macron for a high level tone, an acute accent for rising, and nothing at all for the mid level tone. The second marker is the register, indicating whether the tone is in the upper or lower half of the speaker's range. A trailing h puts the syllable in the low register.
So the h is doing tonal work, not phonetic work. The syllable sih is not si with a breath after it. It is si in the low register, and the h is how that is written down.
The two h's in one word
The cleanest way to see the difference is a syllable that has both, and Cantonese supplies one immediately: hóu, the ordinary word for good.
The h at the front is a real consonant. You pronounce it, the same as the h in English house. There is no h at the end, because the acute accent puts the syllable in a tone that does not take one.
Now compare a syllable written with a final h. The initial position has a consonant you say; the final position has a marker you do not. Same letter, two roles, and nothing in the spelling flags which is which except its position.
Why the mistake is so common
The mistake is common for two opposing reasons.
Reading from Yale, an English speaker sees a letter and produces a sound, because that is what letters do in English. The trailing h looks like the h in ah or the aspiration in an unfamiliar language, and it gets voiced.
Writing into Yale, the reverse happens. People type the letters and drop the diacritics, because diacritics are awkward to enter and often survive copying badly. But the diacritic carries the contour and the h carries only the register, so a syllable written without its accent has lost half its tone information while keeping the other half. The result is ambiguous, forcing any converter or dictionary to guess.
That is worth knowing if you use tools that accept Yale input. Diacritic-free Yale is not just informal, it is incomplete. Any tool that accepts it is making a choice on your behalf.
The syllables that cannot be typed properly
A second problem arises from how Unicode is structured, not from user error.
Cantonese has syllabic nasals — syllables consisting of a nasal consonant with no vowel, like the word for five. Written in Yale these need a tone mark placed over an m or an n, and for some of the combinations required, no single Unicode character exists.
The set is inconsistent in a way that makes this hard to notice. An n with an acute accent exists as one character. So does n with a grave accent, and m with an acute. But m with a grave accent and m with a macron do not exist as single characters at all — they can only be written as a plain m followed by a separate combining mark.
Though they look identical, the two spellings are different sequences of characters and will not match in a search. A search finds one and not the other, a flashcard deck treats them as two entries, and a deduplication pass leaves both. Fonts also position combining marks over m less reliably than over letters with dedicated characters, so the same text can look correct in one place and slightly wrong in another.
This will not be fixed. Unicode's standing policy is to not add new precomposed characters of this kind, making the gap permanent. Software has to handle it by normalising, and software that does not will keep producing these mismatches.
Yale or Jyutping
Since the question follows immediately: Jyutping writes tone as a digit after the syllable, which sidesteps both problems above. No diacritics to lose, no combining marks, and the tone is a number that survives any copy-paste.
Yale reads more naturally to an English speaker and is used in a great deal of teaching material. Jyutping is unambiguous in plain text and easier for software to handle. Neither is more correct. Know which system your book, app, or dictionary is using. Mixing them will produce syllables that are valid in neither.
Where this comes from, and what will date
The tone system described here is the standard Yale analysis found in materials from the Yale-lineage teaching tradition. The Unicode facts — which accented letters exist as single characters and which do not — were read from the character database, and the policy that prevents new ones being added is published by the Unicode Consortium.
None of this dates. Romanisation systems are stable, and the Unicode gap is guaranteed permanent by the policy rather than merely current. What changes is software: a tool that mishandles the combining marks today may normalise correctly after an update, so it is worth re-testing rather than assuming.
One thing to check in whatever tool you use. Type a syllabic nasal into our Cantonese Yale converter, then search for the same syllable typed a second time. If the search does not find it, the tool is not normalising, and you will want to be consistent about how you enter those particular syllables.