{-# LANGUAGE OverloadedStrings, RecordWildCards, TupleSections #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeFamilies #-} {- | = Accessibility -} module CDP.Domains.Accessibility (module CDP.Domains.Accessibility) where import Control.Applicative ((<$>)) import Control.Monad import Control.Monad.Loops import Control.Monad.Trans (liftIO) import qualified Data.Map as M import Data.Maybe import Data.Functor.Identity import Data.String import qualified Data.Text as T import qualified Data.List as List import qualified Data.Text.IO as TI import qualified Data.Vector as V import Data.Aeson.Types (Parser(..)) import Data.Aeson (FromJSON (..), ToJSON (..), (.:), (.:?), (.=), (.!=), (.:!)) import qualified Data.Aeson as A import qualified Network.HTTP.Simple as Http import qualified Network.URI as Uri import qualified Network.WebSockets as WS import Control.Concurrent import qualified Data.ByteString.Lazy as BS import qualified Data.Map as Map import Data.Proxy import System.Random import GHC.Generics import Data.Char import Data.Default import CDP.Internal.Utils import CDP.Domains.DOMPageNetworkEmulationSecurity as DOMPageNetworkEmulationSecurity import CDP.Domains.Runtime as Runtime -- | Type 'Accessibility.AXNodeId'. -- Unique accessibility node identifier. type AccessibilityAXNodeId = T.Text -- | Type 'Accessibility.AXValueType'. -- Enum of possible property types. data AccessibilityAXValueType = AccessibilityAXValueTypeBoolean | AccessibilityAXValueTypeTristate | AccessibilityAXValueTypeBooleanOrUndefined | AccessibilityAXValueTypeIdref | AccessibilityAXValueTypeIdrefList | AccessibilityAXValueTypeInteger | AccessibilityAXValueTypeNode | AccessibilityAXValueTypeNodeList | AccessibilityAXValueTypeNumber | AccessibilityAXValueTypeString | AccessibilityAXValueTypeComputedString | AccessibilityAXValueTypeToken | AccessibilityAXValueTypeTokenList | AccessibilityAXValueTypeDomRelation | AccessibilityAXValueTypeRole | AccessibilityAXValueTypeInternalRole | AccessibilityAXValueTypeValueUndefined deriving (Ord, Eq, Show, Read) instance FromJSON AccessibilityAXValueType where parseJSON = A.withText "AccessibilityAXValueType" $ \v -> case v of "boolean" -> pure AccessibilityAXValueTypeBoolean "tristate" -> pure AccessibilityAXValueTypeTristate "booleanOrUndefined" -> pure AccessibilityAXValueTypeBooleanOrUndefined "idref" -> pure AccessibilityAXValueTypeIdref "idrefList" -> pure AccessibilityAXValueTypeIdrefList "integer" -> pure AccessibilityAXValueTypeInteger "node" -> pure AccessibilityAXValueTypeNode "nodeList" -> pure AccessibilityAXValueTypeNodeList "number" -> pure AccessibilityAXValueTypeNumber "string" -> pure AccessibilityAXValueTypeString "computedString" -> pure AccessibilityAXValueTypeComputedString "token" -> pure AccessibilityAXValueTypeToken "tokenList" -> pure AccessibilityAXValueTypeTokenList "domRelation" -> pure AccessibilityAXValueTypeDomRelation "role" -> pure AccessibilityAXValueTypeRole "internalRole" -> pure AccessibilityAXValueTypeInternalRole "valueUndefined" -> pure AccessibilityAXValueTypeValueUndefined "_" -> fail "failed to parse AccessibilityAXValueType" instance ToJSON AccessibilityAXValueType where toJSON v = A.String $ case v of AccessibilityAXValueTypeBoolean -> "boolean" AccessibilityAXValueTypeTristate -> "tristate" AccessibilityAXValueTypeBooleanOrUndefined -> "booleanOrUndefined" AccessibilityAXValueTypeIdref -> "idref" AccessibilityAXValueTypeIdrefList -> "idrefList" AccessibilityAXValueTypeInteger -> "integer" AccessibilityAXValueTypeNode -> "node" AccessibilityAXValueTypeNodeList -> "nodeList" AccessibilityAXValueTypeNumber -> "number" AccessibilityAXValueTypeString -> "string" AccessibilityAXValueTypeComputedString -> "computedString" AccessibilityAXValueTypeToken -> "token" AccessibilityAXValueTypeTokenList -> "tokenList" AccessibilityAXValueTypeDomRelation -> "domRelation" AccessibilityAXValueTypeRole -> "role" AccessibilityAXValueTypeInternalRole -> "internalRole" AccessibilityAXValueTypeValueUndefined -> "valueUndefined" -- | Type 'Accessibility.AXValueSourceType'. -- Enum of possible property sources. data AccessibilityAXValueSourceType = AccessibilityAXValueSourceTypeAttribute | AccessibilityAXValueSourceTypeImplicit | AccessibilityAXValueSourceTypeStyle | AccessibilityAXValueSourceTypeContents | AccessibilityAXValueSourceTypePlaceholder | AccessibilityAXValueSourceTypeRelatedElement deriving (Ord, Eq, Show, Read) instance FromJSON AccessibilityAXValueSourceType where parseJSON = A.withText "AccessibilityAXValueSourceType" $ \v -> case v of "attribute" -> pure AccessibilityAXValueSourceTypeAttribute "implicit" -> pure AccessibilityAXValueSourceTypeImplicit "style" -> pure AccessibilityAXValueSourceTypeStyle "contents" -> pure AccessibilityAXValueSourceTypeContents "placeholder" -> pure AccessibilityAXValueSourceTypePlaceholder "relatedElement" -> pure AccessibilityAXValueSourceTypeRelatedElement "_" -> fail "failed to parse AccessibilityAXValueSourceType" instance ToJSON AccessibilityAXValueSourceType where toJSON v = A.String $ case v of AccessibilityAXValueSourceTypeAttribute -> "attribute" AccessibilityAXValueSourceTypeImplicit -> "implicit" AccessibilityAXValueSourceTypeStyle -> "style" AccessibilityAXValueSourceTypeContents -> "contents" AccessibilityAXValueSourceTypePlaceholder -> "placeholder" AccessibilityAXValueSourceTypeRelatedElement -> "relatedElement" -- | Type 'Accessibility.AXValueNativeSourceType'. -- Enum of possible native property sources (as a subtype of a particular AXValueSourceType). data AccessibilityAXValueNativeSourceType = AccessibilityAXValueNativeSourceTypeDescription | AccessibilityAXValueNativeSourceTypeFigcaption | AccessibilityAXValueNativeSourceTypeLabel | AccessibilityAXValueNativeSourceTypeLabelfor | AccessibilityAXValueNativeSourceTypeLabelwrapped | AccessibilityAXValueNativeSourceTypeLegend | AccessibilityAXValueNativeSourceTypeRubyannotation | AccessibilityAXValueNativeSourceTypeTablecaption | AccessibilityAXValueNativeSourceTypeTitle | AccessibilityAXValueNativeSourceTypeOther deriving (Ord, Eq, Show, Read) instance FromJSON AccessibilityAXValueNativeSourceType where parseJSON = A.withText "AccessibilityAXValueNativeSourceType" $ \v -> case v of "description" -> pure AccessibilityAXValueNativeSourceTypeDescription "figcaption" -> pure AccessibilityAXValueNativeSourceTypeFigcaption "label" -> pure AccessibilityAXValueNativeSourceTypeLabel "labelfor" -> pure AccessibilityAXValueNativeSourceTypeLabelfor "labelwrapped" -> pure AccessibilityAXValueNativeSourceTypeLabelwrapped "legend" -> pure AccessibilityAXValueNativeSourceTypeLegend "rubyannotation" -> pure AccessibilityAXValueNativeSourceTypeRubyannotation "tablecaption" -> pure AccessibilityAXValueNativeSourceTypeTablecaption "title" -> pure AccessibilityAXValueNativeSourceTypeTitle "other" -> pure AccessibilityAXValueNativeSourceTypeOther "_" -> fail "failed to parse AccessibilityAXValueNativeSourceType" instance ToJSON AccessibilityAXValueNativeSourceType where toJSON v = A.String $ case v of AccessibilityAXValueNativeSourceTypeDescription -> "description" AccessibilityAXValueNativeSourceTypeFigcaption -> "figcaption" AccessibilityAXValueNativeSourceTypeLabel -> "label" AccessibilityAXValueNativeSourceTypeLabelfor -> "labelfor" AccessibilityAXValueNativeSourceTypeLabelwrapped -> "labelwrapped" AccessibilityAXValueNativeSourceTypeLegend -> "legend" AccessibilityAXValueNativeSourceTypeRubyannotation -> "rubyannotation" AccessibilityAXValueNativeSourceTypeTablecaption -> "tablecaption" AccessibilityAXValueNativeSourceTypeTitle -> "title" AccessibilityAXValueNativeSourceTypeOther -> "other" -- | Type 'Accessibility.AXValueSource'. -- A single source for a computed AX property. data AccessibilityAXValueSource = AccessibilityAXValueSource { -- | What type of source this is. accessibilityAXValueSourceType :: AccessibilityAXValueSourceType, -- | The value of this property source. accessibilityAXValueSourceValue :: Maybe AccessibilityAXValue, -- | The name of the relevant attribute, if any. accessibilityAXValueSourceAttribute :: Maybe T.Text, -- | The value of the relevant attribute, if any. accessibilityAXValueSourceAttributeValue :: Maybe AccessibilityAXValue, -- | Whether this source is superseded by a higher priority source. accessibilityAXValueSourceSuperseded :: Maybe Bool, -- | The native markup source for this value, e.g. a