def parse_quoted_text_attributes str
str = sub_attributes str if str.include? ATTR_REF_HEAD
str = str.slice 0, (str.index ',') if str.include? ','
if (str = str.strip).empty?
{}
elsif (str.start_with? '.', '#') && Compliance.shorthand_property_syntax
segments = str.split('#', 2)
if segments.size > 1
id, *more_roles = segments[1].split('.')
else
id = nil
more_roles = []
end
roles = segments[0].empty? ? [] : segments[0].split('.')
if roles.size > 1
roles.shift
end
if more_roles.size > 0
roles.concat more_roles
end
attrs = {}
attrs['id'] = id if id
attrs['role'] = roles * ' ' unless roles.empty?
attrs
else
{'role' => str}
end
end