Шаги геттера innerText и externalText:
1. Если объект контекста (this) не отображается или если пользовательский агент не является пользовательским агентом CSS, верните текстовое содержимое потомка объекта контекста (this).
Этот шаг может привести к неожиданным результатам, так как при вызове средства получателя innerText для элемента, который не визуализируется, возвращается его текстовое содержимое, но при доступе к визуализируемому элементу все его дочерние элементы, которые не визуализируются, игнорируют текстовое содержимое.
2. Пусть результаты results будут новым пустым списком. 3. Для каждого дочернего узла node из объекта контекста (this): 3.1 Пусть current будет списком, в результате которого выполняются шаги по сбору отрендеренного текста с помощью node. Каждый элемент в результатах results будет либо строкой, либо положительным целым числом (требуемый счётчик разрывов строк).
Интуитивно, обязательный элемент счетчика разрывов строк означает, что в этой точке появляется определенное количество разрывов строк, но они могут быть свернуты разрывами строк, вызванными соседними обязательными элементами счётчика разрывов строк, что напоминает свёртывание полей CSS.
3.2 Для каждого элемента item из current, добавить item в results. 4. Удалите все элементы из результатов results, которые являются пустой строкой. 5. Удалите любые повторы последовательных обязательных элементов счетчика разрывов строк (required line break count) в начале или в конце результатов results. 6. Замените каждую оставшуюся серию последовательных обязательных элементов счетчика разрывов строк строкой, состоящей из такого количества кодовых точек U+000A LF, как максимальное количество значений в требуемых элементах счётчика разрывов строк. 7. Верните конкатенацию строковых элементов в результатах results.
Информационные ссылки
HTML | Алгоритм сбора отображаемого текста
Стандарт HTML — Раздел «3.2.7 The innerText and outerText properties» — https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute