run() {
        $("a").each((i, el) => {
            let $el = $(el);

            // Ignore the tota11y UI
            if ($el.parents(".tota11y").length) {
                return;
            }

            // Ignore hidden links
            if (axs.utils.isElementOrAncestorHidden(el)) {
                return;
            }

            // Extract the text alternatives for this element: including
            // its text content, aria-label/labelledby, and alt text for
            // images.
            //
            // TODO: Read from `alts` to determine where the text is coming
            // from (for tailored error messages)
            let alts = {};
            let extractedText = axs.properties.findTextAlternatives(
                el, alts);

            if (!this.isDescriptiveText(extractedText)) {
                let $description = (
                    <div>
                        The text
                        {" "}
                        <i>"{extractedText}"</i>
                        {" "}
                        is unclear without context and may be confusing to
                        screen readers. Consider rearranging the
                        {" "}
                        <code>{"&lt;a&gt;&lt;/a&gt;"}</code>
                        {" "}
                        tags or including special screen reader text.
                    </div>
                );

                this.reportError($el, $description, extractedText);
            }
        });
    }
We can call linkWithUnclearPurpose from ADT directly once the following
issue has been resolved. There is some extra code here until then.
https://github.com/GoogleChrome/accessibility-developer-tools/issues/156