This is mostly a precursor to the attribute nodes implementation for IE9+ modes later, since most of them are stubs in legacy modes. There's also no way to insert them in legacy modes via node props either, since they don't expose IHTMLDOMNode* interfaces.
--
v2: mshtml: Implement removeChild for attributes.
mshtml: Implement replaceChild for attributes.
mshtml: Implement nextSibling prop for attributes.
mshtml: Implement previousSibling prop for attributes.
mshtml: Implement lastChild prop for attributes.
mshtml: Implement firstChild prop for attributes.
mshtml: Implement childNodes prop for attributes.
mshtml: Implement hasChildNodes for attributes.
mshtml: Implement insertBefore for attributes.
mshtml: Implement appendChild for attributes.
mshtml: Implement cloneNode for attributes.
mshtml: Implement ownerDocument prop for attributes.
mshtml: Implement attributes prop for attributes.
mshtml: Implement nodeType prop for attributes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8029