docs: def _provide_speak_properties_with_rule(self, element, rule):
          """
          Provide the CSS features of speaking and speech properties in element.
  
          :param element: The element.
          :type element: hatemile.util.html.htmldomelement.HTMLDOMElement
          :param rule: The stylesheet rule.
          :type rule: hatemile.util.css.stylesheetrule.StyleSheetRule
          """
  
          if rule.has_property('speak'):
              declarations = rule.get_declarations('speak')
              for declaration in declarations:
                  property_value = declaration.get_value()
                  if property_value == 'none':
                      self._speak_none_inherit(element)
                  elif property_value == 'normal':
                      self._speak_normal_inherit(element)
                  elif property_value == 'spell-out':
                      self._speak_as_spell_out_inherit(element)
          if rule.has_property('speak-as'):
              declarations = rule.get_declarations('speak-as')
              for declaration in declarations:
                  speak_as_values = declaration.get_values()
                  self._speak_as_normal(element)
                  for speak_as_value in speak_as_values:
                      if speak_as_value == 'spell-out':
                          self._speak_as_spell_out_inherit(element)
                      elif speak_as_value == 'literal-punctuation':
                          self._speak_as_literal_punctuation_inherit(element)
                      elif speak_as_value == 'no-punctuation':
                          self._speak_as_no_punctuation_inherit(element)
                      elif speak_as_value == 'digits':
                          self._speak_as_digits_inherit(element)
          if rule.has_property('speak-punctuation'):
              declarations = rule.get_declarations('speak-punctuation')
              for declaration in declarations:
                  property_value = declaration.get_value()
                  if property_value == 'code':
                      self._speak_as_literal_punctuation_inherit(element)
                  elif property_value == 'none':
                      self._speak_as_no_punctuation_inherit(element)
          if rule.has_property('speak-numeral'):
              declarations = rule.get_declarations('speak-numeral')
              for declaration in declarations:
                  property_value = declaration.get_value()
                  if property_value == 'digits':
                      self._speak_as_digits_inherit(element)
                  elif property_value == 'continuous':
                      self._speak_as_continuous_inherit(element)
          if rule.has_property('speak-header'):
              declarations = rule.get_declarations('speak-header')
              for declaration in declarations:
                  property_value = declaration.get_value()
                  if property_value == 'always':
                      self._speak_header_always_inherit(element)
                  elif property_value == 'once':
                      self._speak_header_once_inherit(element)