void HTMLImageFallbackHelper::createAltTextShadowTree(Element& element) { ShadowRoot& root = element.ensureUserAgentShadowRoot(); HTMLDivElement* container = HTMLDivElement::create(element.document()); root.appendChild(container); container->setAttribute(idAttr, AtomicString("alttext-container")); container->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden); container->setInlineStyleProperty(CSSPropertyBorderWidth, 1, CSSPrimitiveValue::UnitType::Pixels); container->setInlineStyleProperty(CSSPropertyBorderStyle, CSSValueSolid); container->setInlineStyleProperty(CSSPropertyBorderColor, CSSValueSilver); container->setInlineStyleProperty(CSSPropertyDisplay, CSSValueInlineBlock); container->setInlineStyleProperty(CSSPropertyBoxSizing, CSSValueBorderBox); container->setInlineStyleProperty(CSSPropertyPadding, 1, CSSPrimitiveValue::UnitType::Pixels); HTMLImageElement* brokenImage = HTMLImageElement::create(element.document()); container->appendChild(brokenImage); brokenImage->setIsFallbackImage(); brokenImage->setAttribute(idAttr, AtomicString("alttext-image")); brokenImage->setAttribute(widthAttr, AtomicString("16")); brokenImage->setAttribute(heightAttr, AtomicString("16")); brokenImage->setAttribute(alignAttr, AtomicString("left")); brokenImage->setInlineStyleProperty(CSSPropertyMargin, 0, CSSPrimitiveValue::UnitType::Pixels); HTMLDivElement* altText = HTMLDivElement::create(element.document()); container->appendChild(altText); altText->setAttribute(idAttr, AtomicString("alttext")); altText->setInlineStyleProperty(CSSPropertyOverflow, CSSValueHidden); altText->setInlineStyleProperty(CSSPropertyDisplay, CSSValueBlock); Text* text = Text::create(element.document(), toHTMLElement(element).altText()); altText->appendChild(text); }