Enchant

Enchant provides an API to do spell-checking related tasks. You can ask it if a word is misspelled, or ask for suggestions for a misspelled word. On a higher level, a library such as GtkSpell lets you add "underline squiggles" for misspelled words to text widgets.

In GNOME, Enchant gets used in text-heavy applications like Empathy (an instant messaging client) and Epiphany (a web browser, for text entry in web forms).