Web archives are opaque files that can only be opened natively with Safari (there might be extensions for other browsers). Apple has deprecated the format, and it has probably never been as good as it was meant to be.
Anyway, I wrote a JavaScript script that can “explode” web archives, i.e. save all its content in a folder. The lengthy description of what it does and doesn’t, how, and why can be found online.
A key learning of the effort (for me) was that any attempt to save a web document “as it is” and so that it can be reproduced exactly like that at any later time is futile. One may have some success with simple, mostly static websites. But overall and with many of the web pages generated at least in part dynamically, there is just no way that such an approach works reliably.
The script saves all images, CSS, fonts and scripts contained in the web archive in a folder, and it modifies the original HTML so that it and the downloaded CSS, fonts and scripts load correctly in a browser (ie no CORS errors because the browser refuses to load local resources). However, fonts used in the HTML and not installed on the local machines will be ignored by the browser, as will be images referenced by the CSS, eg in background
attributes, will in some cases not be loaded by the browser. The text linked to above explains some of the reasons for that.
Edit I modified the script so that it includes fonts in the resulting HTML. That will increase the size of the HTML by a lot but make the script more useful.