Personally,
on my website, I avoid iframe navigation by just having a handful (seven, to be precise) of "hub pages" that have a navigation sidebar: Home, About, Thoughts, Links, Art, Shrines, and Miscellaneous. Those are all hand-written.
Everything beyond that (as in, individual shrines, pages for my writing, blog articles and so on) just link back to the respective hub.
That way, if I want to change the navigation somehow, it's a 10 minute job per hand in seven files, and not a slog across like 45 pages. It is the most "vanilla" way of doing a navbar I have seen.
As for HTML/CSS, I recommend reading through the Ultimate Accessibility Guide to alt text:
https://axesslab.com/alt-texts/
Always close your tags, keep everything (tags, attributes etc.) lowercase except for the DOCTYPE. Avoid iframes, javascript wherever possible, and stuff exclusive to HTML5, or to some browsers (e. g. "marquee"/"blink" tags). Try to test on many screen sizes. Work with relative measurements (for example % values) rather than with absolutes.
You might also want to look into Microformats, which are tiny HTML-only-based conventions to mark-up a lot of data types and structures without any additional overhead:
https://microformats.org/wiki/get-started
For example, writing a recipe, you could mark up ingredients, individual steps, the photo, and so on in a recipe microformat; and as opposed to
just putting them in <ul> or <p> tags, a computer can read your recipe suddenly and a sophisticated browser might be able to recommend similar recipes based on the microformat data you added to your website.
It's the difference between "ah, I am a browser and I see a 14px bold centered span with 10px justified text after it. If I have to guess... is this a headline with an article?" and "ah, it is marked up as a <h1 type="article_head"> and an <article> with an <author>" or whatever. Machine readable metadata.