Δύο ιστοσελίδες μπορούν να φαίνονται σχεδόν πανομοιότυπες στον επισκέπτη και ταυτόχρονα να είναι κατασκευασμένες με εντελώς διαφορετική ποιότητα κάτω από την επιφάνεια. Ένας τίτλος μπορεί να μοιάζει οπτικά με τίτλο χωρίς να αποτελεί πραγματικό heading, ένα clickable στοιχείο μπορεί να συμπεριφέρεται σαν κουμπί χωρίς να είναι button και μια περιοχή πλοήγησης μπορεί να αποτελεί απλώς μια σειρά από γενικά containers. Για τον άνθρωπο που κοιτάζει μόνο το τελικό design, η διαφορά μπορεί αρχικά να είναι αόρατη. Για τον browser, τις υποστηρικτικές τεχνολογίες, τους developers που θα συντηρήσουν το έργο και τα συστήματα που επεξεργάζονται το περιεχόμενο, όμως, η διαφορά είναι ουσιαστική. Εδώ βρίσκεται η αξία του Semantic HTML: ο κώδικας δεν περιγράφει μόνο πώς εμφανίζεται κάτι, αλλά και τι πραγματικά είναι.
Η συζήτηση αυτή γίνεται ακόμη σημαντικότερη όσο οι ιστοσελίδες εξελίσσονται από απλές ψηφιακές παρουσιάσεις σε πραγματικές εφαρμογές. Μια σύγχρονη εταιρική παρουσία μπορεί να περιλαμβάνει εκατοντάδες άρθρα, διαφορετικές υπηρεσίες, φόρμες, navigation systems, δυναμικό περιεχόμενο και σύνθετες διαδρομές χρήστη. Αν η βάση της αποτελείται από γενικά στοιχεία χωρίς σαφή σημασιολογική δομή, η πολυπλοκότητα αυξάνεται όσο μεγαλώνει το έργο. Το Semantic HTML δεν είναι λοιπόν μια λεπτομέρεια για developers που επιθυμούν "καθαρότερο κώδικα". Είναι μέρος της αρχιτεκτονικής μιας ιστοσελίδας και συνδέεται άμεσα με την προσβασιμότητα, τη συντήρηση, την κατανόηση του περιεχομένου και τη συνολική τεχνική ποιότητα.
Τι σημαίνει πραγματικά Semantic HTML;
Το HTML διαθέτει στοιχεία που περιγράφουν τον ρόλο του περιεχομένου μέσα σε ένα document. Τα header, nav, main, article, section, aside και footer δεν υπάρχουν απλώς για να αντικαταστήσουν ένα γενικό div. Παρέχουν σημασιολογικές πληροφορίες για τη δομή της σελίδας. Το ίδιο ισχύει για τα headings, τις λίστες, τα links, τα buttons, τα labels και πολλά ακόμη native HTML elements. Ένα button, για παράδειγμα, δεν είναι απλώς ένα rectangle που μπορεί να δεχθεί click. Έχει συγκεκριμένη συμπεριφορά, semantics και δυνατότητες αλληλεπίδρασης που ο browser γνωρίζει ήδη. Η σωστή επιλογή element επομένως μειώνει την ανάγκη να ανακατασκευάζουμε τεχνητά συμπεριφορές που το ίδιο το web platform παρέχει από τη φύση του.
Αν φαίνεται σωστό, δεν σημαίνει ότι είναι σωστά κατασκευασμένο
Το CSS μπορεί να κάνει σχεδόν οποιοδήποτε στοιχείο να μοιάζει με οτιδήποτε άλλο. Ένα απλό div μπορεί να αποκτήσει τεράστια γραμματοσειρά και να μοιάζει με κύριο τίτλο. Ένα spanμπορεί να αποκτήσει background, cursor και click handler και να μοιάζει με button. Οπτικά, το αποτέλεσμα μπορεί να είναι πειστικό. Η εμφάνιση όμως δεν μεταφέρει αυτόματα τη σημασία και τη native συμπεριφορά του σωστού HTML element. Αυτό είναι ιδιαίτερα σημαντικό για ανθρώπους που δεν χρησιμοποιούν μια ιστοσελίδα αποκλειστικά με οθόνη και ποντίκι. Keyboard navigation, screen readers και άλλες assistive technologies βασίζονται σε μεγάλο βαθμό στη σωστή δομή και στις πληροφορίες που παρέχει το document. Το σύγχρονο Responsive Design δεν αφορά μόνο το αν το layout χωράει σε διαφορετικές οθόνες. Αφορά τη δημιουργία μιας εμπειρίας που παραμένει πραγματικά λειτουργική για διαφορετικούς ανθρώπους και διαφορετικούς τρόπους αλληλεπίδρασης.
Semantic HTML και Accessibility
Η προσβασιμότητα είναι ίσως ο σημαντικότερος λόγος για τον οποίο η σημασιολογία δεν πρέπει να αντιμετωπίζεται ως προαιρετική λεπτομέρεια. Η σωστή χρήση headings δημιουργεί κατανοητή ιεραρχία, τα labels συνδέουν τις φόρμες με τις πληροφορίες που ζητούν, τα buttons περιγράφουν πραγματικές ενέργειες και τα landmarks βοηθούν στην κατανόηση των βασικών περιοχών μιας σελίδας. Αυτό δεν σημαίνει ότι το Semantic HTML από μόνο του κάνει μια ιστοσελίδα πλήρως προσβάσιμη. Χρειάζονται επίσης σωστή αντίθεση, keyboard interaction, focus management, εναλλακτικά κείμενα όπου απαιτούνται και πολλές ακόμη αποφάσεις. Αποτελεί όμως τη βάση. Όσο περισσότερο χρησιμοποιούμε τα native στοιχεία του web για τον σκοπό για τον οποίο σχεδιάστηκαν, τόσο λιγότερη τεχνητή πολυπλοκότητα χρειάζεται να δημιουργήσουμε για να αναπαράγουμε συμπεριφορές που θα μπορούσαμε να έχουμε εξαρχής.
Semantic HTML και SEO
Εδώ χρειάζεται μια σημαντική διάκριση. Η χρήση ενός article αντί ενός div δεν αποτελεί κάποιο μαγικό ranking trick, ούτε η προσθήκη semantic elements εγγυάται υψηλότερες θέσεις στη Google. Η αξία βρίσκεται στη δημιουργία μιας καθαρής, λογικής και κατανοητής δομής περιεχομένου. Headings, links, navigation, main content και πραγματικό text content βοηθούν στη συνολική οργάνωση ενός document, ενώ παράλληλα δημιουργούν καλύτερη βάση για accessibility και maintainability. Όπως αναλύσαμε στο άρθρο για το Τεχνικό SEO, το ζητούμενο δεν είναι να δημιουργούμε κώδικα που προσπαθεί να "ξεγελάσει" μια μηχανή αναζήτησης. Είναι να αφαιρούμε τεχνική ασάφεια και να παρουσιάζουμε το πραγματικό περιεχόμενο μέσα σε μια σωστά οργανωμένη τεχνική βάση.
Headings: δομή, όχι διακόσμηση
Τα headings αποτελούν ένα από τα πιο χαρακτηριστικά παραδείγματα. Πολλές φορές επιλέγονται με βάση το μέγεθος που έχει ορίσει ένα design system και όχι με βάση την πραγματική ιεραρχία του περιεχομένου. Αυτό αντιστρέφει τη σωστή λογική. Το αν ένας τίτλος πρέπει να είναι h2 ή h3 δεν πρέπει να αποφασίζεται επειδή το ένα φαίνεται μεγαλύτερο από το άλλο. Η εμφάνιση ελέγχεται από το CSS. Το HTML πρέπει να περιγράφει τη δομή. Ένα σωστά οργανωμένο άρθρο δημιουργεί μια λογική ιεραρχία στην οποία ο κύριος τίτλος, οι βασικές ενότητες και οι υποενότητες έχουν σαφή σχέση μεταξύ τους. Αυτό κάνει το περιεχόμενο ευκολότερο στην κατανόηση, στην πλοήγηση και στη μελλοντική συντήρηση, ειδικά όταν μια ιστοσελίδα εξελίσσεται σε μεγάλη βάση περιεχομένου.
Semantic HTML και Structured Data δεν είναι το ίδιο πράγμα
Είναι επίσης σημαντικό να μη συγχέουμε το Semantic HTML με τα Structured Data. Το semantic markup χρησιμοποιεί τα στοιχεία του HTML ώστε να περιγράψει σωστά τη δομή και τον ρόλο του περιεχομένου μέσα στη σελίδα. Τα Structured Data προσθέτουν ένα διαφορετικό επίπεδο machine-readable πληροφορίας, συνήθως μέσω JSON-LD, για συγκεκριμένες οντότητες και σχέσεις. Το ένα δεν αντικαθιστά το άλλο. Μια σύγχρονη ιστοσελίδα μπορεί να διαθέτει semantic HTML, σωστά metadata και κατάλληλο structured data ως διαφορετικά επίπεδα της ίδιας αρχιτεκτονικής. Όταν όλα αυτά σχεδιάζονται από την αρχή, η πληροφορία παραμένει συνεπής και δεν χρειάζεται να προστεθούν αργότερα δεκάδες διορθώσεις πάνω σε μια αδύναμη βάση.
SSR: σημασία έχει και το HTML που παραδίδεται
Στο Liberty Studio αναπτύσσουμε server-side rendered ιστοσελίδες και εφαρμογές, κάτι που μας επιτρέπει να παραδίδουμε το βασικό περιεχόμενο ως πραγματικό HTML από τον server. Η επιλογή αυτή αποκτά ακόμη μεγαλύτερη αξία όταν το HTML που παραδίδεται είναι σωστά δομημένο. Δεν αρκεί να κάνουμε server render ένα χάος από generic containers. Η αρχιτεκτονική πρέπει να συνδυάζει rendering, semantics, metadata, accessibility και performance. Αυτός είναι και ο λόγος που η κατασκευή μιας σύγχρονης εταιρικής ιστοσελίδας απαιτεί πολύ περισσότερα από ένα όμορφο interface. Η ποιότητα του document που παράγεται είναι εξίσου σημαντική με την ποιότητα του design που βλέπει ο επισκέπτης.
Καθαρότερος κώδικας σημαίνει και καλύτερη συντήρηση
Η σημασιολογία προσφέρει ακόμη ένα πλεονέκτημα που γίνεται εμφανές κυρίως μετά την παράδοση του έργου. Ο κώδικας είναι ευκολότερο να διαβαστεί και να εξελιχθεί όταν τα στοιχεία περιγράφουν τον πραγματικό τους ρόλο. Σε ένα μεγάλο project, η δυνατότητα ενός developer να καταλάβει γρήγορα πού βρίσκεται το navigation, το main content ή ένα πραγματικό article μειώνει την περιττή πολυπλοκότητα. Αυτό αποκτά μεγαλύτερη σημασία σε σύνθετες web εφαρμογές που εξελίσσονται για χρόνια. Η σωστή αρχιτεκτονική δεν σχεδιάζεται μόνο για την ημέρα του launch. Σχεδιάζεται ώστε ο επόμενος developer, η επόμενη λειτουργία και η επόμενη ανάγκη της επιχείρησης να μπορούν να ενσωματωθούν χωρίς να απαιτείται συνεχής ανακατασκευή της βάσης.
Η προσέγγιση του Liberty Studio
Στο Liberty Studio αντιμετωπίζουμε το HTML ως μέρος του engineering ενός έργου και όχι ως ένα αόρατο ενδιάμεσο βήμα μέχρι να εμφανιστεί το design στην οθόνη. Semantic HTML, server-side rendering, accessibility, metadata, Structured Data, σωστή information architecture και υψηλή απόδοση πρέπει να λειτουργούν μαζί. Η διαφορά μπορεί να μην είναι πάντα εμφανής σε ένα screenshot, αλλά γίνεται σημαντική όταν η ιστοσελίδα χρησιμοποιείται από πραγματικούς ανθρώπους, αξιολογείται τεχνικά και εξελίσσεται μέσα στα επόμενα χρόνια. Μια ιστοσελίδα δεν πρέπει απλώς να μοιάζει με ιστοσελίδα. Ο κώδικάς της πρέπει να περιγράφει σωστά αυτό που πραγματικά είναι. Εκεί βρίσκεται μία από τις ουσιαστικότερες διαφορές ανάμεσα στην απλή κατασκευή μιας σελίδας και στη δημιουργία μιας σύγχρονης ψηφιακής υποδομής.

