Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

Differences Between: [Versions 400 and 402] [Versions 400 and 403]

(no description)

File Size: 541 lines (21 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

brickfield_accessibility_css:: (13 methods):
  __construct()
  load_css()
  load_imported_files()
  get_specificity()
  get_style()
  add_selector()
  get_node_style()
  walkup_tree_for_inheritance()
  load_uri()
  format_css()
  get_xpath()
  is_char()
  parse_selector()


Class: brickfield_accessibility_css  - X-Ref

Parse content to check CSS validity.

This class first parses all the CSS in the document and prepares an index of CSS styles to be used by accessibility tests
to determine color and positioning.

First, in loadCSS we get all the inline and linked style sheet information and merge it into a large CSS file string.

Second, in setStyles we use XPath queries to find all the DOM elements which are effected by CSS styles and then
build up an index in style_index of all the CSS styles keyed by an attriute we attach to all DOM objects to lookup
the style quickly.

Most of the second step is to get around the problem where XPath DOMNodeList objects are only marginally referential
to the original elements and cannot be altered directly.

__construct(\DOMDocument &$dom, string $uri, string $type, array $path, bool $cmsmode = false,array $cssfiles = [])   X-Ref
Class constructor. We are just building and importing variables here and then loading the CSS

param: \DOMDocument $dom The DOMDocument object
param: string $uri The URI of the request
param: string $type The type of request
param: array $path
param: bool $cmsmode Whether we are running in CMS mode
param: array $cssfiles An array of additional CSS files to load

load_css()   X-Ref
Loads all the CSS files from the document using LINK elements or @import commands


load_imported_files()   X-Ref
Imports files from the CSS file using @import commands


get_specificity(string $selector)   X-Ref
Returns a specificity count to the given selector.
Higher specificity means it overrides other styles.

return: int $specifity
param: string $selector The CSS Selector

get_style($element)   X-Ref
Interface method for tests to call to lookup the style information for a given DOMNode

return: array An array of style information (can be empty)
param: \stdClass $element A DOMElement/DOMNode object

add_selector(string $key, string $codestr)   X-Ref
Adds a selector to the CSS index

return: null
param: string $key The CSS selector
param: string $codestr The CSS Style code string

get_node_style($element)   X-Ref
Returns the style from the CSS index for a given element by first
looking into its tag bucket then iterating over every item for an
element that matches

return: array An array of all the style elements that _directly_ apply to that element (ignoring inheritance)
param: \stdClass $element

walkup_tree_for_inheritance($element, array $style)   X-Ref
A helper function to walk up the DOM tree to the end to build an array of styles.

return: array The array of the DOM element, altered if it was overruled through css inheritance
param: \stdClass $element The DOMNode object to walk up from
param: array $style The current style built for the node

load_uri(string $rel)   X-Ref
Loads a CSS file from a URI

param: string $rel The URI of the CSS file

format_css()   X-Ref
Formats the CSS to be ready to import into an array of styles

return: bool Whether there were elements imported or not

get_xpath(string $selector)   X-Ref
Converts a CSS selector to an Xpath query

return: string An Xpath query string
param: string $selector The selector to convert

is_char(string $char)   X-Ref
Checks that a string is really a regular character

return: bool Whether the string is a character
param: string $char The character

parse_selector(string $query)   X-Ref
Parses a CSS selector into an array of rules.

return: array An array of the CSS Selector parsed into rule segments
param: string $query The CSS Selector query