В Windows есть API для инструментов доступности, таких как программы чтения с экрана для слепых. (Более новые версии также используются для других целей, таких как автоматизация пользовательского интерфейса и тестирование.) Он работает со многими приложениями, даже с большинством браузеров, которые отображают свой собственный контент без использования стандартных элементов управления Windows. Он не будет работать со всеми приложениями, но в большинстве случаев его можно использовать для определения текста под мышью.
Текущий API называется Windows Automation API . Описание того, как это сделать в целом, выходит за рамки ответа о переполнении стека, поэтому я просто предоставил ссылку на документацию.
Более старый API, который был широко доступен, когда этот вопрос был впервые опубликован, называется Microsoft Active Accessibility API . Как и в случае с современными API, область действия здесь слишком широка, чтобы детализировать ее.
Обратите внимание, что документация для обоих API написана как для разработчиков, создающих инструменты специальных возможностей (например, средства чтения с экрана), так и для разработчиков, пишущих приложения, которые хотят быть совместимыми с этими инструментами специальных возможностей.
Основная идея заключается в том, что инструмент специальных возможностей получает COM-интерфейсы, предоставляемые окнами целевого приложения, и может использовать эти интерфейсы для определения элементов управления и их текста, а также того, как они связаны как логически, так и пространственно. Приложения, которые состоят из стандартных элементов управления Windows, в основном поддерживаются автоматически. Приложения с пользовательскими реализациями пользовательского интерфейса должны выполнять работу по обеспечению этих интерфейсов. К счастью, важные из них, такие как основные браузеры, выполнили работу по поддержке этих интерфейсов.