She was so angry that she couldn't speak.

Literal

She [topic-は] very got-angry [then-て] speak [thing-こと-subject-が] could-not.

怒って (te-form of 怒る) here carries a causal flavor — not just sequence ('she got angry and then…') but consequence ('because she got angry…'). The te-form covers both ranges, with context picking which is foregrounded. 話すことができなかった is the textbook 'could not speak' frame, slightly more formal than the potential form 話せなかった.