Nein, ist sie nicht.
Die Seite ist grösstenteils aus <div>'s zusammengesetzt.
Warum das? <div> ist das Element, was man bei richtiger Semantik am wenigsten braucht.
Ich weiss, das wird nicht gerne gesehen
Das hat nichts mit "gern gesehen" zu tun, es ist einfach semantisch falsch.
ich wüsste keine Alternative
Es gibt auch keine "Alternative zu divs". Was soll das sein?
Semantik bedeutet, dem Inhalt eine Bedeutung zu geben. div hat die Bedeutung "Gruppe mehrerer Elemente". Da musst Du doch zugeben, dass das Blödsinn ist, wenn Du ein <ul> noch zusätzlich in ein <div> einpackst. Ich sehe da keinen Sinn dahinter, Du packst doch Deine Weihnachtsgeschenke auch nicht zweimal ein!
Auch Mist ist der Alternativtext Deiner 1. Überschrift. Was soll "Logo" für eine Überschrift sein? Ich glaube, Du hast noch nie Deine Bilder abgeschaltet, mach das mal, dann erkennst Du vielleicht zum ersten Mal wirklich, wozu der alt-Text ist und was Du da sinnvolles reinmachen musst!
Mehrere Textabsätze zeichnet man auch durch mehrere <p> aus. <br> braucht man eigentlich nicht. Ich würde es so sparsam wie möglich einsetzen, meistens ist man nämlich versucht, das nur aufgrund von Abständen zu machen. Deine Begründung ist sicher "Ich will aber nicht, dass zwischen den Absätzen ein Abstand ist." Tja, sowas macht man aber mit CSS, nie mit HTML.
Dann der Footer. Der enthält doch Text. Warum zeichnest Du ihn dann nicht als "Text" aus, sondern als "Gruppe"? Wo ist da eine Gruppe?
Dann Verbesserung: Warum jedem Link die Klasse "button" geben? Ist doch viel zu viiel Schreibarbeit und macht den Code unübersichtlich. Alle Klassen raus, die Liste heißt dann semantischerweise "Buttonlist" und die einzelnen Links sprichst Du dann mit "ul.buttonlist a" an und gibt dem die Eigenschaften, die Dein ".button" jetzt hat.
aber das <div> brauche ich für den Hintergrund und der Border.
Wie _Thor_ schon sagt, dazu brauchst Du kein <div>. Um einen optischen Effekt zu erreichen, brauchst Du nur CSS, niemals aber ein bestimmtes HTML-Tag. HTML ist NICHT für das Aussehen zuständig!
Das ist vielleicht das, was Dich die ganze Zeit blockiert, Du glaubst vielleicht, dass man nur divs mit CSS auszeichnen kann. Das ist natürlich nicht so und wäre völlig unlogisch und würde den Einsatz von CSS gar nicht rechtfertigen. Natürlich kannst Du JEDES Tag mit JEDER CSS-Eigenschaft formatieren! (Ausnahmen bestätigen die Regel)