TDD is meant to be done on public interfaces. So TDD is meant to allow you design interfaces from the pov of a consumer of that public interfaces.
Many user interfaces don’t have easily testable abstract interfaces, and user features are first tackled by expressing changes to a user interface.
You really have to jump through hoops to make the reality of coding meet the theoretical model.