/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef CssAltContent_h_ #define CssAltContent_h_ #include "nsStyleStruct.h" namespace mozilla::a11y { /** * Queries alternative text specified in the CSS content property. */ class MOZ_STACK_CLASS CssAltContent { public: explicit CssAltContent(nsIContent* aContent); /** * Checks whether any CSS alt text has been specified. It could be explicitly * empty. Usage example: * if (CssAltContent(someContentNode)) ... */ explicit operator bool() const { return !mItems.IsEmpty(); } /** * Checks whether the CSS alt text is empty or unspecified. To check for alt * text which is explicitly specified as empty, combine this with operator * bool(). */ bool IsEmpty() const { return mText.IsEmpty(); } /** * Append all CSS alt text to a string. */ void AppendToString(nsAString& aOut); private: dom::Element* mRealElement = nullptr; dom::Element* mPseudoElement = nullptr; mozilla::Span mItems; nsString mText; }; } // namespace mozilla::a11y #endif