The link and style elements can provide
  styling information for the user agent to use when rendering the
  document. The CSS and CSSOM specifications specify what styling
  information is to be used by the user agent and how it is to be
  used. [CSS] [CSSOM]
The style and link elements implement
  the LinkStyle interface. [CSSOM]
For style elements, if the user agent does not
  support the specified styling language, then the sheet attribute of the element's
  LinkStyle interface must return null. Similarly,
  link elements that do not represent external resource links that contribute to
  the styling processing model (i.e. that do not have a stylesheet keyword in their rel attribute), or for which the
  link is an alternative stylesheet but whose title content attribute is absent or empty,
  must have their LinkStyle interface's sheet attribute return null.
Otherwise, the LinkStyle interface's sheet attribute must return a
  StyleSheet object with the following properties: [CSSOM]
The style sheet type must be the same as the style's specified
   type. For style elements, this is the same as the
   type content attribute's
   value, or text/css if that is omitted. For
   link elements, this is the Content-Type metadata of the specified
   resource.
For link elements, the location must be the
   result of resolving the
   URL given by the element's href content attribute, relative to
   the element, or the empty string if that fails. For
   style elements, there is no location.
The media must be the same as the value of the element's
   media content attribute, or the empty string,
   if the attribute is omitted.
The title must be the same as the value of the element's
   title content attribute, if the
   attribute is present and has a non-empty value. If the attribute is
   absent or its value is the empty string, then the style sheet does
   not have a title (it is the empty string). The title is used for
   defining alternative style sheet sets.
For link elements, true if the link is an
   alternative stylesheet. In all other cases, false.
The same object must be returned each time.
The disabled IDL
  attribute on link and style elements must
  return false and do nothing on setting, if the sheet attribute of their
  LinkStyle interface is null. Otherwise, it must return
  the value of the StyleSheet interface's disabled attribute on
  getting, and forward the new value to that same attribute on
  setting.
The rules for handling alternative style sheets are defined in the CSS object model specification. [CSSOM]
Style sheets, whether added by a link element, a
  style element, an <?xml-stylesheet> PI,
  an HTTP Link: header, or some other
  mechanism, have a style sheet ready flag, which is
  initially unset.
When a style sheet is ready to be applied, its style sheet
  ready flag must be set. If the style sheet referenced no
  other resources (e.g. it was an internal style sheet given by a
  style element with no @import
  rules), then the style rules must be synchronously made available to
  script; otherwise, the style rules must only be made available to
  script once the event loop reaches its "update the
  rendering" step.
A style sheet in the context of the Document of an
  HTML parser or XML parser is said to be
  a style sheet that is blocking scripts if the element was
  created by that Document's parser, and the element is
  either a style element or a link element
  that was an external resource link that
  contributes to the styling processing model when the element
  was created by the parser, and the element's style sheet was enabled
  when the element was created by the parser, and the element's
  style sheet ready flag is not yet set, and, the last
  time the event loop reached step 1, the element was
  in that Document,
  and the user agent hasn't given up on that particular style sheet
  yet. A user agent may give up on a style sheet at any time.
Giving up on a style sheet before the style sheet loads, if the style sheet eventually does still load, means that the script might end up operating with incorrect information. For example, if a style sheet sets the color of an element to green, but a script that inspects the resulting style is executed before the sheet is loaded, the script will find that the element is black (or whatever the default color is), and might thus make poor choices (e.g. deciding to use black as the color elsewhere on the page, instead of green). Implementors have to balance the likelihood of a script using incorrect information with the performance impact of doing nothing while waiting for a slow network request to finish.
A Document has a style sheet that is blocking
  scripts if there is either a style sheet that is
  blocking scripts in the context of that
  Document, or if that Document is in a
  browsing context that has a parent browsing
  context, and the active document of that
  parent browsing context itself has a style sheet
  that is blocking scripts.
A Document has no style sheet that is blocking
  scripts if it does not have a style sheet that is blocking scripts
  as defined in the previous paragraph.