Top 10 κακών συνηθειών στη συγγραφή του markup

10 04 2008

Το παρόν πόστ δεν έχει τόσο ως σκοπό να βοηθήσει, αλλά να τα γράψω κάπου και να ξεσπάσω διότι πραγματικά έχω κουραστεί απίστευτα να βλέπω ξανά και ξανά τα ίδια λάθη/κακοτεχνίες στον κώδικα κυρίως των πολύ αρχάριων στο αντικείμενο (ή ενίοτε αρκετά “παλιών” που απλά έχουν συνηθίσει έτσι). Το χειρότερο είναι ότι από όσα πανεπιστήμια έχω εμπειρία, είτε προσωπική, είτε μέσω φίλων, η HTML που διδάσκουν σχεδόν πάντα πέφτει σε όλα τα παρακάτω ατοπήματα. Γιατί; Ο λόγος είναι απλός. Ακολουθούν την αρχή “ο,τι δουλεύει μην το πειράζεις”. Δεν έχει σημασία αν ο κώδικας είναι απαίσιος, και παρουσιάζει τα άπειρα λάθη στο validation, ή αν θυμίζει κώδικα ιστοσελίδας του 1996, αυτό που έχει σημασία για τους περισσότερους είναι ότι …δουλεύει όπως θέλουν. Ή έτσι νομίζουν.

  1. Έλλειψη DOCTYPE declaration
  2. Κεφαλαία στα tags και τα attributes. Ενίοτε βλέπω και περιπτώσεις όπου τα μισά είναι κεφαλαία και τα άλλα μισά πεζά, κάτι που φαίνεται ακόμα χειρότερο.
  3. Παράλειψη εισαγωγικών στις τιμές των html attributes
  4. Παράλειψη δήλωσης τίτλου της σελίδας (<title>…</title>).
  5. Χρησιμοποίηση deprecated tags & attributes, με top τα: <font>, <center>, <u>, <s> και από attributes τις bgcolor, vspace, hspace, link, vlink, leftmargin, topmargin, marginwidth, marginheight
  6. Κλασσικότατο: <script language=”JavaScript”>. Πόσες φορές δεν το έχετε δει;
  7. Παράλειψη του closing tag στα <li> και <p> elements.
  8. Παράλειψη της καθέτου (/) στα self closing tags (πχ img, input κοκ)
  9. Αγνόηση των σωστών indents, με αποτέλεσμα το markup να είναι εντελώς δυσανάγνωστο.
  10. Παράλειψη του alt tag στα images.

Εσάς τι σας εκνευρίζει όταν το βλέπετε στο markup μιας σελίδας;


Ενέργειες

Πληροφορίες

9 απαντήσεις

12 04 2008
gstoumpos

Πολύ καλός δεκάλογος κακών συνηθειών.
Εγώ σαν αρχάριος έχω βοηθηθεί πάρα πολύ από τη μελέτη του w3schools.com
Το ερώτημά μου είναι όμως ποιός ή ποιά αρχή ορίζει ποια είναι τα deprecated tags & attributes και ποιο το λάθος markup ώστε να δημιουργείται πρόβλημα με το W3C validity;
Σαν αυτοδίδακτος σε HTML μέσω διάφορων tutorials χρησιμοποιώ πολλά τέτοια απαρχαιομένα tags τα οποία εμφανίζουν όμως σωστά αυτό που θέλω.
Μήπως στην όλη αυτή ιστορία παίζουν ρόλο οι αναβαθμίσεις της κάθε γενιάς του εκάστοτε browser (π.χ. ωραίο το καινούργιο Photoshop CS αλλά κάνουμε τη δουλειά μας και με το απαρχαιομένο 6.0);

12 04 2008
leaverou

Τα deprecated tags & attributes συνήθως αφορούν το presentation, την εμφάνιση της ιστοσελίδας (σίγουρα θα έχεις ακούσει/διαβάσει την έκφραση “presentational tags”).
Σήμερα, υπάρχει η τάση να διαχωρίζεται το markup από το presentation (με το δεύτερο να εκπληρώνεται μέσω του CSS). Αυτό έχει πολλαπλά οφέλη:
1. (και κυριότερο για μένα) Ενώ ο όγκος της σελίδας παραμένει ο ίδιος (σε ΚΒ), ένα μεγάλο τμήμα του μεταφέρεται στα CSS αρχεία, τα οποία περνάνε στην cache του browser, με αποτέλεσμα ο χρήστης να αντιλαμβάνεται πιο ελαφρύ το site.
2. Καλύτερο SEO (τα επιχειρήματα για αυτό διάφορα, το αποτέλεσμα διαπιστωμένο)
3. Καθαρότερος κώδικας
4. Ευκολότερες αλλαγές
5. Σιγουριά ότι το site θα φαίνεται σωστά και στις μελλοντικές εκδόσεις των browsers.

Σίγουρα παίζουν ρόλο και οι αναβαθμίσεις των browsers, αλλά όχι με τον τρόπο που φαντάζεσαι. Απλά αν τα νέα features στο specification δεν γινόντουσαν implement από κανέναν browser, προφανώς οι web developers/designers (στην Ελλάδα και οι 2 γράφουν markup) δεν θα τα ακολουθούσαν.

Δεν είμαι φανατική με τα web standards (μέχρι προσφάτως χρησιμοποιούσα tables για layout), αλλά αναγνωρίζω ότι έχουν αρκετά πλεονεκτήματα.

Πάντως, το εν λόγω άρθρο δεν είχε διδακτικό χαρακτήρα (δλδ “κάντε αυτό”/”μην κάνετε εκείνο”) αλλά ήταν απλά ένα ξέσπασμα δικό μου, με όσα εκνευρίζουν εμένα όταν τα βλέπω, μιας και εκείνη τη στιγμή είχα πέσει πάνω σε ένα δείγμα σελίδας που είχε τα περισσότερα εξ αυτών. Κάποιους άλλους τους ενοχλούν διαφορετικά πράγματα (πχ τo μη semantic markup).
Κάποια από αυτά τα έχω κάνει κι εγώ στο παρελθόν πάντως (1,5,10). :)

14 04 2008
_hopelesscase_

Ωραία και χρήσιμα τα παραπάνω. Μέχρι πριν από 1 χρόνο ασχολούμουν με tables, στη συνέχεια έβγαλα τα μάτια μου στην οθόνη (δεν είχα κάποιον να μου τα δείξει με το νι + με το σίγμα) για να εμπεδώσω το tableless css layout και να είμαι σε θέση να φτιάχνω σελίδες σύμφωνες με τα στάνταρντ.

Ωστόσο μέρος της ευθύνης φέρουν και παλιότερες εκδόσεις λογισμικού όπως το Dreamweaver που αφήνουν πολλά σκουπίδια στον κώδικα αν χρησιμοποιήσεις τους αυτοματισμούς του γραφικού περιβάλλοντος -προσωπικά γράφω κατευθείαν κώδικα, αλλά είναι σύνηθες για έναν webdesigner να μην κάνει το ίδιο.
Το νεότερο DW έχω ακούσει ότι έχει βελτιωθεί κατά πολύ στον τομέα “σκουπίδια στον κώδικα”, ισχύει?

14 04 2008
leaverou

Κι εγώ πολύ πρόσφατα μετέβην (τη σκότωσα τη λέξη; Ξέρει κανείς ποιός είναι ο αόριστος του μεταβαίνω; ) σε CSS layout. Τις περισσότερες γνώσεις για αυτό τις είχα αποκτήσει σιγά σιγά καιρό πριν, αλλά επέμενα φανατικά σε tables επειδή με βόλευαν*.

Τελικά αναγκάστηκα να κάνω ένα site εντελώς standards compliant, και από τότε κόλλησα με το CSS layout και το semantic markup για τα οποία με έπρηζαν τόσα χρόνια οι συνάδελφοι και τους αγνοούσα :P

Το Dreamweaver όντως έχει βελτιωθεί πάρα πολύ σε επίπεδο κώδικα. Αν και ούτως ή άλλως, για πόσο καιρό θα δημιουργεί κάποιος σε design view? Μόλις μάθει πέντε πράγματα, θα αρχίσει να θέλει να έχει περισσότερο έλεγχο πάνω στη σελίδα.

*Σπαζοκεφαλιά: Πως κάνουμε χωρίς tables ένα κουτάκι με κείμενο χωρίς σταθερό πλάτος ή ύψος με στρογγυλεμένες γωνίες, 90% διαφανές μονόχρωμο φόντο και από πίσω gradient? (με λιγότερο όγκο markup σε σχέση με αυτόν που θα χρειαζόταν αν γινόταν με tables and that includes javascript generated markup). Προσωπικά, δεν έχω βρει ακόμα κάποια λύση. Ακόμα και το facebook, το συγκεκριμένο πράγμα το έχει κάνει με tables εκεί που το χρειάστηκε (σε κάτι DHTML popups).

14 04 2008
tsiloboy

Νομίζω την απάντηση σε αυτό που ρωτάς (“Πως κάνουμε χωρίς tables ένα κουτάκι με κείμενο χωρίς σταθερό πλάτος ή ύψος με στρογγυλεμένες γωνίες…”) θα την έχω διαβάσει σε αυτό το βιβλίο

CSS Mastery: Advanced Web Standards Solutions

15 04 2008
leaverou

Ενδιαφέρον…
Αν και δεν το χρειάζομαι ακόμα, απλά θυμάμαι ότι όταν το χρειάστηκα δεν είχα καταφέρει να βρω ή να σκεφτώ ούτε μία λύση σε CSS layout…

15 04 2008
e.

Νομίζω ότι αυτό που περιγράφεις υπάρχει εδώ: http://www.schillmania.com/projects/dialog2/
Είναι λίγο μπερδεμένο αλλά ελπίζω να βοηθήσει.
Άλλες πηγές υπάρχουν συγκεντρωμένες εδώ: http://cssgallery.info/rounded-cornes-css/

15 04 2008
leaverou

Ναι, το είχα βρει και αυτό…
Ο κώδικας του όντως είναι σχετικά λίγος…
Ωστόσο, η background image που απαιτείται είναι τεράστια σε σχέση με την αντίστοιχη table λύση (που απαιτεί 5 πολύ μικρές εικόνες), και σε περιορίζει (έστω και χαλαρά) στις διαστάσεις. Δηλαδή όταν το container ξεπεράσει περίπου το διπλάσιο του μήκους/πλάτους του background image, το layout θα “σπάσει”…

22 04 2008
gstoumpos

Με όλα αυτά που λέτε καταλαβαίνω ότι έχω πολύ δρόμο ακόμη για το ποιοτικό webdesign
εμαθα κάποτε html και έχω μείνει πλέον πίσω
Άντε ξανά διάβασμα!

Γράψτε ένα σχόλιο