Μετάβαση στο περιεχόμενο
  • οι Συλλογές μας
  • AboutYfeos
logo stamp
EL
EL
EN
0,00 € 0 Cart
  • οι Συλλογές μας
  • ο YFEOS
logo stamp
EL
EL
EN
0,00 € 0 Cart

Έκθεση Αξιολόγησης για το «Yfeos by Nikos Iosif»

Σχετικά με την Αξιολόγηση

Δημιουργός Έκθεσης
Ανέστης Κωνσταντίνου, Ιδιοκτήτης του «Yfeos by Nikos Iosif»
Αναθέτων Φορέας Αξιολόγησης
Ανέστης Κωνσταντίνου, Ιδιοκτήτης του «Yfeos by Nikos Iosif»
Ημερομηνία Αξιολόγησης
Δευτέρα 22 Σεπτεμβρίου 2025

Εκτελεστική Σύνοψη

Ο ιστότοπος Yfeos (https://yfeos.com
) αξιολογήθηκε βάσει των Οδηγιών για την Προσβασιμότητα Περιεχομένου Ιστού (WCAG) 2.1, Επίπεδο AA, χρησιμοποιώντας τη μεθοδολογία W3C WCAG-EM. Με βάση τον συνδυασμό αυτοματοποιημένων ελέγχων (Lighthouse, Axe, WAVE) και χειροκίνητης επιθεώρησης (πλοήγηση με πληκτρολόγιο, έλεγχοι αναγνώστη οθόνης, ανάλυση αντίθεσης χρωμάτων), ο ιστότοπος θεωρείται συμμορφούμενος με το WCAG 2.1 Επίπεδο AA.

Η βασική λειτουργικότητα, συμπεριλαμβανομένης της περιήγησης στις συλλογές, της προβολής λεπτομερειών προϊόντων, της προσθήκης στο καλάθι και της ολοκλήρωσης αγοράς, δοκιμάστηκε σε περιβάλλοντα επιτραπέζιου και κινητού. Το πολυμεσικό περιεχόμενο (hero video) διαθέτει υπότιτλους και απομαγνητοφώνηση. Οι φόρμες παρέχουν προσβάσιμες ετικέτες, σαφείς οδηγίες και χειρισμό σφαλμάτων.

Δεν εντοπίστηκαν κρίσιμα ζητήματα προσβασιμότητας. Μικρές βελτιώσεις μπορούν να εφαρμοστούν στο πλαίσιο της συνεχούς συντήρησης, αλλά συνολικά ο ιστότοπος προσφέρει μια χωρίς αποκλεισμούς εμπειρία για άτομα με αναπηρίες.

Πεδίο της Αξιολόγησης

Όνομα Ιστοτόπου
Yfeos by Nikos Iosif
Πεδίο του ιστότοπου
Όλο το δημόσιο περιεχόμενο του ιστότοπου yfeos.com (συμπεριλαμβανομένων εκδόσεων για tablet και κινητό) που βρίσκεται στη διεύθυνση http://www.yfeos.com/
Έκδοση WCAG
2.1
Στόχος συμμόρφωσης
AA
Βασική γραμμή υποστήριξης προσβασιμότητας

-Για επιτραπέζιους υπολογιστές:

Google Chrome (τελευταία έκδοση) με NVDA (Windows)

Mozilla Firefox (τελευταία έκδοση) με NVDA (Windows)

Safari (τελευταία έκδοση) με VoiceOver (macOS)

Για κινητά:

Safari σε iOS (τελευταία έκδοση) με VoiceOver

Chrome σε Android (τελευταία έκδοση) με TalkBack

-Άλλες παράμετροι:

Πλοήγηση μόνο με πληκτρολόγιο (χωρίς ποντίκι)

Μεγέθυνση έως 200% χωρίς απώλεια περιεχομένου ή λειτουργικότητας

Έλεγχος με αυτοματοποιημένα εργαλεία (Lighthouse, WAVE, Axe) για κριτήρια WCAG 2.1 AA

Πρόσθετες απαιτήσεις αξιολόγησης

Η αξιολόγηση καλύπτει όλες τις δημόσια διαθέσιμες σελίδες και περιεχόμενο του ιστότοπου, όχι μόνο δείγμα.

Η έκθεση περιλαμβάνει κατάλογο όλων των εντοπισμένων ζητημάτων προσβασιμότητας και όχι μόνο ενδεικτικά παραδείγματα.

Για κάθε ζήτημα, καταγράφεται περιγραφή προβλήματος και προτεινόμενη προσέγγιση διόρθωσης.

Τα αποτελέσματα αυτοματοποιημένων ελέγχων (Lighthouse, WAVE, Axe) συνδυάστηκαν με χειροκίνητη επιθεώρηση δομής, σημασιολογίας ARIA, πλοήγησης με πληκτρολόγιο και εξόδου αναγνώστη οθόνης.

Η αξιολόγηση πραγματοποιήθηκε λαμβάνοντας υπόψη τόσο περιβάλλοντα επιτραπέζιων όσο και κινητών συσκευών.

Αναλυτικά Αποτελέσματα Ελέγχου

Σύνοψη

Αναφορά σε 50 από 50 κριτήρια επιτυχίας WCAG 2.1 AA.
Success Criteria.

  • 43 Επιτυχίες
  • 0 Αποτυχίες
  • 0 Δεν μπορεί να καθοριστεί
  • 7 Μη εφαρμοστέα
  • 0 Μη ελεγχθέντα

Σύνολα Αποτελεσμάτων

1 Αντιληπτό (Perceivable)

1.1 Εναλλακτικά κείμενα (Text Alternatives)
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
1.1.1: Μη κειμενικό περιεχόμενο
Ολόκληρο το δείγμα

Επιτυχία

Hero

Επιτυχία

οι Συλλογές μας

Επιτυχία

οι Συλλογές μας

Επιτυχία

Σχετικά με εμάς

Επιτυχία

Σελίδα προϊόντος

Επιτυχία

Δήλωση Προσβασιμότητας

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Όλες οι εικόνες προϊόντων διαθέτουν περιγραφικά alt· τα διακοσμητικά εικονίδια έχουν κενό alt.

Hero

Χωρίς παρατηρήσεις

οι Συλλογές μας

Χωρίς παρατηρήσεις

οι Συλλογές μας

Χωρίς παρατηρήσεις

Σχετικά με εμάς

Χωρίς παρατηρήσεις

Σελίδα προϊόντος

Χωρίς παρατηρήσεις

Δήλωση Προσβασιμότητας

Χωρίς παρατηρήσεις

1.2 Περιεχόμενο βάσει χρόνου (Time-based Media)
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
1.2.1: Ήχος-μόνο & Βίντεο-μόνο (Προηχογραφημένα)
Ολόκληρο το δείγμα

Μη εφαρμοστέο

Ολόκληρο το δείγμα

Παρατηρήσεις

Δεν υπάρχει περιεχόμενο μόνο ήχου ή μόνο βίντεο.

1.2.2: Υπότιτλοι (Προηχογραφημένα)
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Το hero video διαθέτει υπότιτλους και απομαγνητοφώνηση.

1.2.3: Εναλλακτική μέσων ή περιγραφή ήχου
Ολόκληρο το δείγμα

Μη εφαρμοστέο

Ολόκληρο το δείγμα

Παρατηρήσεις

Δεν υπάρχει περιεχόμενο βίντεο το οποίο χρήζει απομαγνητοφώνησης

1.2.4: Υπότιτλοι (Ζωντανό)
Ολόκληρο το δείγμα

Μη εφαρμοστέο

Ολόκληρο το δείγμα

Παρατηρήσεις

Κανένα Ζωντανό βίντεο ή ήχος

1.2.5: Περιγραφή ήχου (Προηχογραφημένα)
Ολόκληρο το δείγμα

Μη εφαρμοστέο

Ολόκληρο το δείγμα

Παρατηρήσεις

Δεν υπάρχει περιεχόμενο ήχου το οποίο χρήζει απομαγνητοφώνησης

1.3 Προσαρμοστικό (Adaptable)
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
1.3 Προσαρμοστικό (Adaptable)
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Επικεφαλίδες, λίστες, πίνακες και πεδία φόρμας με σωστή σημασιολογία.

1.3.2: Νοηματική ακολουθία
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Σειρά ανάγνωσης επαληθευμένη με αναγνώστες οθόνης.

1.3.3: Sensory Characteristics
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Instructions never rely on color/shape alone.

1.3.4: Προσανατολισμός
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Λειτουργεί σε κάθετη/οριζόντια διάταξη (κινητό/desktop).

1.3.5: Αναγνώριση σκοπού εισόδου
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Πεδία checkout με κατάλληλα autocomplete.

1.4 Διακριτό (Distinguishable)
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
1.4.1: Χρήση χρώματος
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Καμιά πληροφορία δεν βασίζεται στο χρώμα για την επικοινωνία

1.4.2: Έλεγχος ήχου
Ολόκληρο το δείγμα

Μη εφαρμοστέο

Ολόκληρο το δείγμα

Παρατηρήσεις

Κανένα κομμάτι ήχου δεν παίζει αυτόματα

1.4.3: Ελάχιστη αντίθεση
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Έλεγχος με εργαλεία αντίθεσης· όλες οι συζεύξεις ≥ 4.5:1.

1.4.4: Αλλαγή μεγέθους κειμένου
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Το περιεχόμενο προσαρμόζεται ακάμα και σε 200% zoom χωρίς απώλειες

1.4.5: Εικόνες κειμένου
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Καμία εικόνα κειμένου δεν χρησιμοποιείται(εξαιρείτε το λογότυπο)

1.4.10: Reflow
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Δυναμικό περιεχόμενο το οποίο δεν αλλοιώνεται και δεν απαιτείται οριζόντια κύλιση

1.4.11: Μη κειμενική αντίθεση
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

UI ελέγχοι και δείκτες συγκέντρωσης έχουν τουλάχιστον 3:1 αντίθεση

1.4.12: Απόσταση κειμένου
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Ελέγχθηκε με προσαρμοσμένη απόσταση. Καμία αλλοίωση δεν επήλθε.

1.4.13: Περιεχόμενο σε hover ή focus
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Δυνατότητα απόρριψης αναδυόμενων παραθύρων/συμβουλών εργαλείων, ελεγχόμενα εργαλεία κατάδειξης/εστίασης.

2 Λειτουργικό (Operable)

2.1 Προσβάσιμο με πληκτρολόγιο
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
2.1.1: Πληκτρολόγιο
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Ελέγχθηκε με πληκτρολόγιο.: όλοι οι σύνδεσμοι, αναδυόμενα παράθυρα και φόρμες είναι λειτουργικά.

2.1.2: Χωρίς παγίδευση
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Η εστίαση λειτουργεί χωρίς παρεμποδίσεις, καμία παγίδευση δεν εντοπίστηκε

2.1.4: Συντομεύσεις πλήκτρων χαρακτήρων
Ολόκληρο το δείγμα

Μη εφαρμοστέο

Ολόκληρο το δείγμα

Παρατηρήσεις

Καμία συντόμευση ενός πλήκτρου δεν εφαρμόστηκε

2.2 Επαρκής χρόνος
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
2.2.1: Ρυθμιζόμενος χρόνος
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Κανένα χρονικό όριο δεν εφαρμόστηκε: ΟΙ πεπερασμένοι χρόνοι καλαθιού και checkout προσαρμόζονται από τον φυλλομετρητή.

2.2.2: Παύση/Διακοπή/Απόκρυψη
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Τα κουμπιά ελέγχου των βίντεο είναι προσβάσιμα, η μη-απαραίτητα.

2.3 Επιληπτικές κρίσεις και σωματικές αντιδράσεις
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
2.3.1: Τρεις αναλαμπές ή κάτω από το όριο
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Κανένα περιεχόμενο με αναλαμπές.

2.4 Πλοηγήσιμο
Κριτήριο επιτυχίαςΑποτέλεσμαΠαρατηρήσεις
2.4.1: Παράκαμψη μπλοκ
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Παρέχεται skip-link για την κύρια πλοήγηση.

2.4.2: Τίτλος σελίδας
Ολόκληρο το δείγμα

Επιτυχία

Ολόκληρο το δείγμα

Παρατηρήσεις

Κάθε σελίδα διαθέτει περιγραφική ετικέτα .</p></td></tr><tr><th id="criterion-243" scope="row">2.4.3: Σειρά εστίασης</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Επιβεβαιώθηκε λογική σειρά μέσω tab.</p></td></tr><tr><th id="criterion-244" scope="row">2.4.4: Σκοπός συνδέσμου (στο πλαίσιο)</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Οι σύνδεσμοι είναι περιγραφικοί· τα εικονίδια διαθέτουν aria-labels.</p></td></tr><tr><th id="criterion-245" scope="row">2.4.5: Πολλαπλοί τρόποι</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Οι σελίδες είναι προσβάσιμες μέσω πλοήγησης, breadcrumbs και αναζήτησης.</p></td></tr><tr><th id="criterion-246" scope="row">2.4.6: Επικεφαλίδες και ετικέτες</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Επικεφαλίδες/λίστες με συνεπή δομή.</p></td></tr><tr><th id="criterion-247" scope="row">2.4.7: Ορατή εστίαση</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Ο ορατός δείκτης εστίασης πληροί τις απαιτήσεις αντίθεσης.</p></td></tr></tbody></table><h5 id="guideline-25">2.5 Τρόποι εισόδου</h5><table aria-labelledby="guideline-25"><tbody><tr><th scope="col">Κριτήριο επιτυχίας</th><th scope="col">Αποτέλεσμα</th><th scope="col">Παρατηρήσεις</th></tr><tr><th id="criterion-251" scope="row">2.5.1: Χειρονομίες δείκτη</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Όλη η λειτουργικότητα (π.χ. μεγέθυνση εικόνας προϊόντος, πλοήγηση γκαλερί) λειτουργεί με ένα πάτημα/κλικ· δεν απαιτούνται χειρονομίες με μονοπάτι.</p></td></tr><tr><th id="criterion-252" scope="row">2.5.2: Ακύρωση ενεργειών δείκτη</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Όλες οι ενέργειες με έναν δείκτη (π.χ. προσθήκη στο καλάθι, υποβολή φόρμας) απαιτούν σκόπιμη ενεργοποίηση· δεν υπάρχει τυχαία ενεργοποίηση σε αφή.</p></td></tr><tr><th id="criterion-253" scope="row">2.5.3: Σήμανση στο όνομα</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Τα στοιχεία UI (κουμπιά, σύνδεσμοι) έχουν προσβάσιμα ονόματα που ταιριάζουν με τις ορατές ετικέτες· π.χ. το κουμπί «Προσθήκη στο Καλάθι» ανακοινώνεται ως «Προσθήκη στο Καλάθι».</p></td></tr><tr><th id="criterion-254" scope="row">2.5.4: Λειτουργία μέσω κίνησης</th><td><h6>Ολόκληρο το δείγμα</h6><p>Μη εφαρμοστέο</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Ο ιστότοπος δεν χρησιμοποιεί κίνηση συσκευής (π.χ. κούνημα, κλίση) για αλληλεπίδραση.</p></td></tr></tbody></table><h4>3 Κατανοητό (Understandable)</h4><h5 id="guideline-31">3.1 Αναγνώσιμο</h5><table aria-labelledby="guideline-31"><tbody><tr><th scope="col">Κριτήριο επιτυχίας</th><th scope="col">Αποτέλεσμα</th><th scope="col">Παρατηρήσεις</th></tr><tr><th id="criterion-311" scope="row">3.1.1: Γλώσσα σελίδας</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Η γλώσσα της σελίδας έχει οριστεί σωστά (EN/GR).</p></td></tr><tr><th id="criterion-312" scope="row">3.1.2: Γλώσσα τμημάτων</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Ο επιλογέας γλώσσας εφαρμόζει σωστά τα γνωρίσματα γλώσσας.</p></td></tr></tbody></table><h5 id="guideline-32">3.2 Προβλέψιμο</h5><table aria-labelledby="guideline-32"><tbody><tr><th scope="col">Κριτήριο επιτυχίας</th><th scope="col">Αποτέλεσμα</th><th scope="col">Παρατηρήσεις</th></tr><tr><th id="criterion-321" scope="row">3.2.1: Σε εστίαση</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Δεν υπάρχουν απρόσμενες αλλαγές περιβάλλοντος στην εστίαση.</p></td></tr><tr><th id="criterion-322" scope="row">3.2.2: Σε εισαγωγή</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Οι αλλαγές σε φόρμες δεν προκαλούν απρόσμενες μεταβολές περιβάλλοντος.</p></td></tr><tr><th id="criterion-323" scope="row">3.2.3: Συνεπής πλοήγηση</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Τα μενού είναι συνεπή σε όλο τον ιστότοπο.</p></td></tr><tr><th id="criterion-324" scope="row">3.2.4: Συνεπής αναγνώριση</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Τα εικονίδια/χειριστήρια φέρουν συνεπείς επισημάνσεις.</p></td></tr></tbody></table><h5 id="guideline-33">3.3 Βοήθεια εισαγωγής</h5><table aria-labelledby="guideline-33"><tbody><tr><th scope="col">Κριτήριο επιτυχίας</th><th scope="col">Αποτέλεσμα</th><th scope="col">Παρατηρήσεις</th></tr><tr><th id="criterion-331" scope="row">3.3.1: Αναγνώριση σφάλματος</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Τα σφάλματα φορμών υποδεικνύονται με σαφές κείμενο.</p></td></tr><tr><th id="criterion-332" scope="row">3.3.2: Ετικέτες ή οδηγίες</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Οι φόρμες περιλαμβάνουν σαφείς ετικέτες/οδηγίες.</p></td></tr><tr><th id="criterion-333" scope="row">3.3.3: Υπόδειξη διόρθωσης</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Οι φόρμες checkout παρέχουν υποδείξεις για τη διόρθωση λαθών εισαγωγής.</p></td></tr><tr><th id="criterion-334" scope="row">3.3.4: Πρόληψη σφάλματος (νομικά, οικονομικά, δεδομένα)</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Η διαδικασία checkout απαιτεί επιβεβαίωση πριν την οριστικοποίηση της αγοράς.</p></td></tr></tbody></table><h4>4 Ισχυρό (Robust)</h4><h5 id="guideline-41">4.1 Συμβατό</h5><table aria-labelledby="guideline-41"><tbody><tr><th scope="col">Κριτήριο επιτυχίας</th><th scope="col">Αποτέλεσμα</th><th scope="col">Παρατηρήσεις</th></tr><tr><th id="criterion-411" scope="row">4.1.1: Ανάλυση (Parsing)</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Έγκυρο HTML· χωρίς σημαντικά σφάλματα ανάλυσης.</p></td></tr><tr><th id="criterion-412" scope="row">4.1.2: Όνομα, ρόλος, τιμή</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Τα στοιχεία διεπαφής εκθέτουν σωστά ρόλους/ετικέτες στις βοηθητικές τεχνολογίες.</p></td></tr><tr><th id="criterion-413" scope="row">4.1.3: Μηνύματα κατάστασης</th><td><h6>Ολόκληρο το δείγμα</h6><p>Επιτυχία</p></td><td><h6>Ολόκληρο το δείγμα</h6><p>Παρατηρήσεις</p><p>Τα στοιχεία διεπαφής εκθέτουν σωστά ρόλους/ετικέτες στις βοηθητικές τεχνολογίες.</p></td></tr></tbody></table><h2>Δείγμα Ελεγχθέντων Σελίδων Ιστού</h2><ol><li>Hero – www.yfeos.com/index</li><li>Οι συλλογές μας – www.yfeos.com/shop</li><li>Σχετικά με εμάς – www.yfeos.com/about-yfeos</li><li>Σελίδα προϊόντος – www.yfeos.com/product/soretta-hidding/</li><li>Δήλωση προσβασιμότητας – www.yfeos.com/accessibility-statement/</li><li>Οι συλλογές μας – www.yfeos.com/shop</li></ol><h2>Τεχνολογία Ιστού</h2><p>HTML,CSS,WAI-ARIA,JavaScript,SVG,Video,Fonts,Images</p><h2>Καταγραφή Ειδικών Παραμέτρων Αξιολόγησης</h2><p>Εργαλεία και Μέθοδοι Αξιολόγησης:<br />– Αυτοματοποιημένα εργαλεία: Lighthouse (a11y audits, αναφορές JSON), Axe DevTools, WAVE.<br />– Χειροκίνητοι έλεγχοι: πλοήγηση μόνο με πληκτρολόγιο, διαχείριση εστίασης, σημασιολογία αναδυόμενων, ορόσημα ARIA, δομή επικεφαλίδων, alt text, επαλήθευση αντίθεσης χρωμάτων.</p><p>Προγράμματα περιήγησης που δοκιμάστηκαν:<br />– Chrome (latest, desktop & mobile)<br />– Brave (desktop)<br />– Safari (desktop & iOS mobile)<br />– Firefox (desktop)</p><p>Βοηθητικές τεχνολογίες που δοκιμάστηκαν:<br />– NVDA (Windows, with Chrome/Firefox)<br />– VoiceOver (macOS & iOS Safari)<br />– TalkBack (Android Chrome)</p><p>Τεχνολογίες στις οποίες βασίζεται ο ιστότοπος:<br />– HTML5, CSS3, JavaScript, WAI-ARIA<br />– Web fonts (Manrope, Work Sans, Inter, Cormorant Garamond)<br />– Images (WebP, JPG, PNG)<br />– Video (WebM, MP4 with poster, captions, transcript)</p><p>Πεδίο κάλυψης: Ολόκληρος ο δημόσιος ιστότοπος (αρχική, σελίδες προϊόντων, checkout, σελίδες λογαριασμού, ενημερωτικές σελίδες, γλωσσικές παραλλαγές).</p><p> </p> </div> </div> </div> <footer data-elementor-type="footer" data-elementor-id="341" class="elementor elementor-341 elementor-location-footer" data-elementor-post-type="elementor_library"> <div class="elementor-element elementor-element-10761d5 e-con-full e-flex e-con e-parent" data-id="10761d5" data-element_type="container" id="pseudo-footer"> <div class="elementor-element elementor-element-eee3f65 e-flex e-con-boxed e-con e-child" data-id="eee3f65" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-180b42c e-con-full e-flex e-con e-child" data-id="180b42c" data-element_type="container"> <div class="elementor-element elementor-element-126bb7e elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="126bb7e" data-element_type="widget" data-widget_type="text-editor.default"> <p>ΑΚΟΛΟΥΘΗΣΤΕ ΜΑΣ</p> </div> <div class="elementor-element elementor-element-076783d elementor-shape-circle elementor-grid-3 e-grid-align-center elementor-widget elementor-widget-social-icons" data-id="076783d" data-element_type="widget" data-widget_type="social-icons.default"> <div class="elementor-social-icons-wrapper elementor-grid" role="list"> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-facebook elementor-repeater-item-9f38c1a" href="https://www.facebook.com/profile.php?id=61580786933352" target="_blank"> <span class="elementor-screen-only">Facebook</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-facebook" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </a> </span> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-instagram elementor-repeater-item-18321a1" href="https://www.instagram.com/yfeos_by_nikosiosif/" target="_blank"> <span class="elementor-screen-only">Instagram</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-instagram" viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg> </a> </span> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-tiktok elementor-repeater-item-550246f" href="https://www.tiktok.com/@yfeos_?is_from_webapp=1&sender_device=pc" target="_blank"> <span class="elementor-screen-only">Tiktok</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-tiktok" viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"></path></svg> </a> </span> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-ddb65f4 e-grid e-con-full e-con e-child" data-id="ddb65f4" data-element_type="container"> <div class="elementor-element elementor-element-1b483fe e-con-full e-flex e-con e-child" data-id="1b483fe" data-element_type="container"> <div class="elementor-element elementor-element-01af64d elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="01af64d" data-element_type="widget" data-widget_type="text-editor.default"> <p>ΥΠΗΡΕΣΙΕΣ</p><hr /> </div> <div class="elementor-element elementor-element-23703d9 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor" data-id="23703d9" data-element_type="widget" data-widget_type="text-editor.default"> <p><a href="https://yfeos.com/el/contact-us/">Επικοινωνία</a></p><p><a href="https://yfeos.com/el/faqs/">FAQ</a></p><p><a href="https://yfeos.com/el/product/yfeos-gift-card/">Δωροκάρτες</a></p><p><a href="https://yfeos.com/el/about-yfeos/">οι Αξίες μας</a></p> </div> </div> <div class="elementor-element elementor-element-2124eef e-flex e-con-boxed e-con e-child" data-id="2124eef" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-3100b24 elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="3100b24" data-element_type="widget" data-widget_type="text-editor.default"> <p>ΠΑΡΑΓΓΕΛΙΕΣ</p><hr /> </div> <div class="elementor-element elementor-element-77a436e elementor-widget__width-inherit elementor-widget elementor-widget-text-editor" data-id="77a436e" data-element_type="widget" data-widget_type="text-editor.default"> <p><a href="https://yfeos.com/el/payments/#payments">Πληρωμές</a></p><p><a href="https://yfeos.com/el/payments/#shipping">Αποστολές</a></p><p><a href="https://yfeos.com/el/track-order/">Εντοπισμός παραγγελίας</a></p><p><a href="https://yfeos.com/el/payments/#returns">Επιστροφές</a></p> </div> </div> </div> <div class="elementor-element elementor-element-fb4db76 e-flex e-con-boxed e-con e-child" data-id="fb4db76" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-16364de elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="16364de" data-element_type="widget" data-widget_type="text-editor.default"> <p>ΝΟΜΙΚΑ</p><hr /> </div> <div class="elementor-element elementor-element-3efdef2 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor" data-id="3efdef2" data-element_type="widget" data-widget_type="text-editor.default"> <p><a href="https://yfeos.com/el/privacy/#privacy">Πολιτική Απορρήτου και Cookies</a></p><p><a href="https://yfeos.com/el/privacy/#terms">'Οροι και Προϋποθέσεις</a></p><p><a href="https://yfeos.com/el/accessibility-statement/">Προσβασιμότητα</a></p><p><a href="https://yfeos.com/el/eu-funding/">Επιχορήγηση από την Ελλάδα και την Ευρωπαϊκή Ένωση</a></p> </div> </div> </div> <div class="elementor-element elementor-element-7a0dca9 e-flex e-con-boxed e-con e-child" data-id="7a0dca9" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-82df516 elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="82df516" data-element_type="widget" data-widget_type="text-editor.default"> <p>ΕΞΥΠΗΡΕΤΗΣΗ ΠΕΛΑΤΩΝ</p><hr /> </div> <div class="elementor-element elementor-element-63eaebe elementor-widget elementor-widget-text-editor" data-id="63eaebe" data-element_type="widget" data-widget_type="text-editor.default"> <p>Δευτέρα με Παρασκευή, 10πμ με 6μμ</p><p>( UTC +3, ώρα Αθήνας)</p><p>Τηλέφωνο +2316028957</p> </div> <div class="elementor-element elementor-element-862e7b8 e-con-full e-flex e-con e-child" data-id="862e7b8" data-element_type="container"> <div class="elementor-element elementor-element-78e3188 email-link elementor-widget elementor-widget-text-editor" data-id="78e3188" data-element_type="widget" data-widget_type="text-editor.default"> <p><span style="text-decoration: underline;"><a href="mailto:customerservice@yfeos.com?subject=EnquiryfromYfeos&20Website" target="_blank" rel="noopener">Στείλτε μας email</a></span></p> </div> <div class="elementor-element elementor-element-56ce56f elementor-widget__width-initial elementor-view-default elementor-widget elementor-widget-icon" data-id="56ce56f" data-element_type="widget" data-widget_type="icon.default"> <div class="elementor-icon-wrapper"> <div class="elementor-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><g transform="translate(-.8886 1.2481)" fill="none" stroke="#000" stroke-opacity=".99714"><path d="m8.0089 5.8108 10.758 0.011902" stroke-width="2.0131"></path><path d="m17.759 15.576 0.011918-10.758" stroke-width="2.0131"></path><path d="m16.924 6.7885-9.2119 9.1979" stroke-width="2.0152"></path></g></svg> </div> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-d90338a e-flex e-con-boxed e-con e-child" data-id="d90338a" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-31c6dee elementor-widget elementor-widget-text-editor" data-id="31c6dee" data-element_type="widget" data-widget_type="text-editor.default"> <p>ΕΓΓΡΑΦΗ ΣΤΟ NEWSLETTER </p> </div> <div class="elementor-element elementor-element-c9ea73c elementor-button-align-stretch elementor-widget elementor-widget-form" data-id="c9ea73c" data-element_type="widget" data-settings="{"step_next_label":"Next","step_previous_label":"Previous","button_width":"100","step_type":"number_text","step_icon_shape":"circle"}" data-widget_type="form.default"> <form class="elementor-form" method="post" name="SUBSCRIBE-" aria-label="SUBSCRIBE-" action=""> <input type="hidden" name="post_id" value="341"/> <input type="hidden" name="form_id" value="c9ea73c"/> <input type="hidden" name="referer_title" value="Home" /> <input type="hidden" name="queried_id" value="2403"/> <div class="elementor-form-fields-wrapper elementor-labels-above"> <div class="elementor-field-type-text elementor-field-group elementor-column elementor-field-group-name elementor-col-100"> <label for="form-field-name" class="elementor-field-label"> Ονοματεπώνυμο </label> <input size="1" type="text" name="form_fields[name]" id="form-field-name" class="elementor-field elementor-size-sm elementor-field-textual" placeholder="π.χ. Μαρία Παπαδοπούλου"> </div> <div class="elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-100 elementor-field-required elementor-mark-required"> <label for="form-field-email" class="elementor-field-label"> Email </label> <input size="1" type="email" name="form_fields[email]" id="form-field-email" class="elementor-field elementor-size-sm elementor-field-textual" placeholder="π.χ. example@mail.com" required="required"> </div> <div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons"> <button class="elementor-button elementor-size-md" type="submit"> <span class="elementor-button-content-wrapper"> <span class="elementor-button-icon"> <svg aria-hidden="true" class="e-font-icon-svg e-far-envelope" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg> </span> <span class="elementor-button-text">Βάλε με στην ΛΙΣΤΑ</span> </span> </button> </div> </div> <input type="hidden" name="trp-form-language" value="el"/></form> </div> </div> </div> <div class="elementor-element elementor-element-5ec7404 e-con-full e-flex e-con e-child" data-id="5ec7404" data-element_type="container"> <div class="elementor-element elementor-element-87c8e20 elementor-widget elementor-widget-text-editor" data-id="87c8e20" data-element_type="widget" data-widget_type="text-editor.default"> <p>Πληροφορίες του YFEOS</p> </div> <div class="elementor-element elementor-element-ac8262c elementor-widget elementor-widget-text-editor" data-id="ac8262c" data-element_type="widget" data-widget_type="text-editor.default"> <p><strong data-start="1448" data-end="1466">Επωνυμία επιχείρησης</strong> Κωνσταντίνου Ανέστης Κυριάκος<br data-start="1496" data-end="1499" /><strong data-start="1499" data-end="1514">Νομική Μορφή</strong> Sole Proprietorship (Ατομική Επιχείρηση)<br data-start="1555" data-end="1558" /><strong data-start="1558" data-end="1570">Διεύθυνση</strong> Κεντρικής Μακεδονίας 7-9, Θεσσαλονίκη, ΤΚ 54632, Ελλάδα<br data-start="1626" data-end="1629" /><strong data-start="1629" data-end="1646">Tax ID (ΑΦΜ):</strong> 140520119<br data-start="1656" data-end="1659" /><strong data-start="1659" data-end="1675">Αριθμός ΓΕΜΗ</strong> 185910606000</p> </div> </div> </div> <div class="elementor-element elementor-element-f8a3e94 e-grid e-con-full e-con e-child" data-id="f8a3e94" data-element_type="container" data-settings="{"background_background":"classic"}"> <div class="elementor-element elementor-element-3619d1d elementor-widget elementor-widget-text-editor" data-id="3619d1d" data-element_type="widget" data-widget_type="text-editor.default"> <p><strong><span style="color: #003399;">www.yfeos.com</span></strong></p> </div> <div class="elementor-element elementor-element-0c3609c elementor-widget__width-initial elementor-widget elementor-widget-image" data-id="0c3609c" data-element_type="widget" data-widget_type="image.default"> <img width="450" height="69" src="https://yfeos.com/wp-content/uploads/2025/08/footer_logos_el.svg" class="attachment-large size-large wp-image-351" alt="eu finding logo" /> </div> <div class="elementor-element elementor-element-3f78fc8 elementor-widget elementor-widget-text-editor" data-id="3f78fc8" data-element_type="widget" data-widget_type="text-editor.default"> <p><span style="color: #003399;"><strong>Πρόγραμμα</strong></span></p><p><span style="color: #003399;"><strong>Ενίσχυσης της επιχειρηματικότητας</strong></span><br /><span style="color: #003399;"><strong>για ανέργους ηλικίας 30-59 ετών με έμφαση στις</strong></span><br /><span style="color: #003399;"><strong>γυναίκες.</strong></span></p> </div> </div> </div> </footer> <template id="tp-language" data-tp-language="el"></template><script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/el\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-child\/*","\/wp-content\/themes\/hello-elementor\/*","\/el\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <!-- Consent Management powered by Complianz | GDPR/CCPA Cookie Consent https://wordpress.org/plugins/complianz-gdpr --> <div id="cmplz-cookiebanner-container"><div class="cmplz-cookiebanner cmplz-hidden banner-1 banner-a optin cmplz-bottom cmplz-categories-type-view-preferences" aria-modal="true" data-nosnippet="true" role="dialog" aria-live="polite" aria-labelledby="cmplz-header-1-optin" aria-describedby="cmplz-message-1-optin"> <div class="cmplz-header"> <div class="cmplz-logo"><a href="https://yfeos.com/el/" class="custom-logo-link" rel="home"><img width="350" height="100" src="https://yfeos.com/wp-content/uploads/2025/07/Y-350x100-1.svg" class="custom-logo" alt="logo stamp" decoding="async" /></a></div> <div class="cmplz-title" id="cmplz-header-1-optin">Manage Consent</div> <div class="cmplz-close" tabindex="0" role="button" aria-label="Close dialog" data-no-translation-aria-label=""> <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" class="svg-inline--fa fa-times fa-w-11" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 352 512"><path fill="currentColor" d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg> </div> </div> <div class="cmplz-divider cmplz-divider-header"></div> <div class="cmplz-body"> <div class="cmplz-message" id="cmplz-message-1-optin">To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.</div> <!-- categories start --> <div class="cmplz-categories"> <details class="cmplz-category cmplz-functional" > <summary> <span class="cmplz-category-header"> <span class="cmplz-category-title">Functional</span> <span class='cmplz-always-active'> <span class="cmplz-banner-checkbox"> <input type="checkbox" id="cmplz-functional-optin" data-category="cmplz_functional" class="cmplz-consent-checkbox cmplz-functional" size="40" value="1"/> <label class="cmplz-label" for="cmplz-functional-optin"><span class="screen-reader-text">Functional</span></label> </span> Πάντα ενεργό </span> <span class="cmplz-icon cmplz-open"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> </span> </span> </summary> <div class="cmplz-description"> <span class="cmplz-description-functional">The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.</span> </div> </details> <details class="cmplz-category cmplz-preferences" > <summary> <span class="cmplz-category-header"> <span class="cmplz-category-title">Preferences</span> <span class="cmplz-banner-checkbox"> <input type="checkbox" id="cmplz-preferences-optin" data-category="cmplz_preferences" class="cmplz-consent-checkbox cmplz-preferences" size="40" value="1"/> <label class="cmplz-label" for="cmplz-preferences-optin"><span class="screen-reader-text">Preferences</span></label> </span> <span class="cmplz-icon cmplz-open"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> </span> </span> </summary> <div class="cmplz-description"> <span class="cmplz-description-preferences">The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.</span> </div> </details> <details class="cmplz-category cmplz-statistics" > <summary> <span class="cmplz-category-header"> <span class="cmplz-category-title">Statistics</span> <span class="cmplz-banner-checkbox"> <input type="checkbox" id="cmplz-statistics-optin" data-category="cmplz_statistics" class="cmplz-consent-checkbox cmplz-statistics" size="40" value="1"/> <label class="cmplz-label" for="cmplz-statistics-optin"><span class="screen-reader-text">Statistics</span></label> </span> <span class="cmplz-icon cmplz-open"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> </span> </span> </summary> <div class="cmplz-description"> <span class="cmplz-description-statistics">The technical storage or access that is used exclusively for statistical purposes.</span> <span class="cmplz-description-statistics-anonymous">The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.</span> </div> </details> <details class="cmplz-category cmplz-marketing" > <summary> <span class="cmplz-category-header"> <span class="cmplz-category-title">Marketing</span> <span class="cmplz-banner-checkbox"> <input type="checkbox" id="cmplz-marketing-optin" data-category="cmplz_marketing" class="cmplz-consent-checkbox cmplz-marketing" size="40" value="1"/> <label class="cmplz-label" for="cmplz-marketing-optin"><span class="screen-reader-text">Marketing</span></label> </span> <span class="cmplz-icon cmplz-open"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> </span> </span> </summary> <div class="cmplz-description"> <span class="cmplz-description-marketing">The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.</span> </div> </details> </div><!-- categories end --> </div> <div class="cmplz-links cmplz-information"> <a class="cmplz-link cmplz-manage-options cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container" data-no-translation="" data-trp-gettext="">Διαχείριση επιλογών</a> <a class="cmplz-link cmplz-manage-third-parties cookie-statement" href="#" data-relative_url="#cmplz-cookies-overview" data-no-translation="" data-trp-gettext="">Διαχείριση υπηρεσιών</a> <a class="cmplz-link cmplz-manage-vendors tcf cookie-statement" href="#" data-relative_url="#cmplz-tcf-wrapper" data-no-translation="" data-trp-gettext="">Manage {vendor_count} vendors</a> <a class="cmplz-link cmplz-external cmplz-read-more-purposes tcf" target="_blank" rel="noopener noreferrer nofollow" href="https://cookiedatabase.org/tcf/purposes/" data-no-translation="" data-trp-gettext="">Διαβάστε περισσότερα για αυτούς τους σκοπούς</a> </div> <div class="cmplz-divider cmplz-footer"></div> <div class="cmplz-buttons"> <button class="cmplz-btn cmplz-accept">Accept</button> <button class="cmplz-btn cmplz-deny">Deny</button> <button class="cmplz-btn cmplz-view-preferences">View preferences</button> <button class="cmplz-btn cmplz-save-preferences">Save preferences</button> <a class="cmplz-btn cmplz-manage-options tcf cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">View preferences</a> </div> <div class="cmplz-links cmplz-documents"> <a class="cmplz-link cookie-statement" href="#" data-relative_url="">{title}</a> <a class="cmplz-link privacy-statement" href="#" data-relative_url="">{title}</a> <a class="cmplz-link impressum" href="#" data-relative_url="">{title}</a> </div> </div> </div> <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">.</button> </div> <div data-elementor-type="popup" data-elementor-id="303" class="elementor elementor-303 elementor-location-popup" data-elementor-settings="{"avoid_multiple_popups":"yes","open_selector":".js-open-search","a11y_navigation":"yes","timing":[]}" data-elementor-post-type="elementor_library"> <div class="elementor-element elementor-element-753e124 e-flex e-con-boxed e-con e-parent" data-id="753e124" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-40081c5 elementor-widget elementor-widget-search" data-id="40081c5" data-element_type="widget" data-settings="{"submit_trigger":"key_enter","pagination_type_options":"none"}" data-widget_type="search.default"> <search class="e-search hidden" role="search"> <form class="e-search-form" action="https://yfeos.com/el/" method="get" data-trp-original-action="https://yfeos.com/el"> <label class="e-search-label" for="search-40081c5"> <span class="elementor-screen-only"> Search </span> </label> <div class="e-search-input-wrapper"> <input id="search-40081c5" placeholder="Αναζήτηση στον Yfeos..." class="e-search-input" type="search" name="s" value="" autocomplete="on" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="results-40081c5" aria-haspopup="listbox"> <svg aria-hidden="true" class="e-font-icon-svg e-fas-window-close" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"></path></svg> <output id="results-40081c5" class="e-search-results-container hide-loader" aria-live="polite" aria-atomic="true" aria-label="Results for search" tabindex="0" data-no-translation-aria-label=""> <div class="e-search-results"></div> </output> </div> <button class="e-search-submit elementor-screen-only" type="submit" aria-label="Search" data-no-translation-aria-label=""> </button> <input type="hidden" name="e_search_props" value="40081c5-303"> <input type="hidden" name="trp-form-language" value="el"/></form> </search> </div> </div> </div> </div> <div data-elementor-type="popup" data-elementor-id="329" class="elementor elementor-329 elementor-location-popup" data-elementor-settings="{"entrance_animation":"fadeIn","exit_animation":"fadeIn","entrance_animation_duration":{"unit":"px","size":1.5,"sizes":[]},"a11y_navigation":"yes","triggers":[],"timing":[]}" data-elementor-post-type="elementor_library"> <div class="elementor-element elementor-element-1d5e1a2 account-popup e-con-full e-flex e-con e-parent" data-id="1d5e1a2" data-element_type="container"> <div class="elementor-element elementor-element-c584edb elementor-widget__width-initial e-my-account-tabs-vertical elementor-widget elementor-widget-woocommerce-my-account" data-id="c584edb" data-element_type="widget" data-widget_type="woocommerce-my-account.default"> <div class="e-my-account-tab e-my-account-tab__dashboard"> <div class="woocommerce"><div class="woocommerce-notices-wrapper"></div> <div class="u-columns col2-set" id="customer_login"> <div class="u-column1 col-1"> <h2 data-no-translation="" data-trp-gettext="">Σύνδεση</h2> <form class="woocommerce-form woocommerce-form-login login" method="post" novalidate action=""> <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> <label for="username">Όνομα χρήστη ή διεύθυνση email <span class="required" aria-hidden="true">*</span><span class="screen-reader-text" data-no-translation="" data-trp-gettext="">Απαιτείται</span></label> <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="username" autocomplete="username" value="" required aria-required="true" /> </p> <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> <label for="password">Κωδικός <span class="required" aria-hidden="true">*</span><span class="screen-reader-text" data-no-translation="" data-trp-gettext="">Απαιτείται</span></label> <input class="woocommerce-Input woocommerce-Input--text input-text" type="password" name="password" id="password" autocomplete="current-password" required aria-required="true" /> </p> <p class="form-row"> <label class="woocommerce-form__label woocommerce-form__label-for-checkbox woocommerce-form-login__rememberme"> <input class="woocommerce-form__input woocommerce-form__input-checkbox" name="rememberme" type="checkbox" id="rememberme" value="forever" /> <span data-no-translation="" data-trp-gettext="">Να με θυμάσαι</span> </label> <input type="hidden" id="woocommerce-login-nonce" name="woocommerce-login-nonce" value="15401d7831" /><input type="hidden" name="_wp_http_referer" value="/el/accessibility-report/" /> <button type="submit" class="woocommerce-button button woocommerce-form-login__submit" name="login" value="Σύνδεση" data-no-translation="" data-trp-gettext="" data-no-translation-value="">Σύνδεση</button> </p> <p class="woocommerce-LostPassword lost_password"> <a href="https://yfeos.com/el/accessibility-report/lost-password/" data-no-translation="" data-trp-gettext="">Χάσατε τον κωδικό σας;</a> </p> <input type="hidden" name="trp-form-language" value="el"/></form> </div> <div class="u-column2 col-2"> <h2 data-no-translation="" data-trp-gettext="">Εγγραφή</h2> <form method="post" class="woocommerce-form woocommerce-form-register register" action="" > <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> <label for="reg_email">Διεύθυνση email <span class="required" aria-hidden="true">*</span><span class="screen-reader-text" data-no-translation="" data-trp-gettext="">Απαιτείται</span></label> <input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="email" id="reg_email" autocomplete="email" value="" required aria-required="true" /> </p> <p data-no-translation="" data-trp-gettext="">Ένας σύνδεσμος για να ορίσετε νέο κωδικό πρόσβασης θα σταλεί στη διεύθυνση email σας</p> <wc-order-attribution-inputs></wc-order-attribution-inputs><div class="woocommerce-privacy-policy-text"><p>Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our <a href="https://yfeos.com/el/privacy/" class="woocommerce-privacy-policy-link" target="_blank" data-no-translation="" data-trp-gettext="">πολιτική απορρήτου</a>.</p> </div> <p class="woocommerce-form-row form-row"> <input type="hidden" id="woocommerce-register-nonce" name="woocommerce-register-nonce" value="5f21edd2f2" /><input type="hidden" name="_wp_http_referer" value="/el/accessibility-report/" /> <button type="submit" class="woocommerce-Button woocommerce-button button woocommerce-form-register__submit" name="register" value="Εγγραφή" data-no-translation="" data-trp-gettext="" data-no-translation-value="">Εγγραφή</button> </p> <input type="hidden" name="trp-form-language" value="el"/></form> </div> </div> </div> </div> </div> </div> </div> <div data-elementor-type="popup" data-elementor-id="2539" class="elementor elementor-2539 elementor-location-popup" data-elementor-settings="{"entrance_animation":"fadeInLeft","exit_animation":"fadeInRight","prevent_scroll":"yes","avoid_multiple_popups":"yes","entrance_animation_mobile":"fadeInDown","exit_animation_mobile":"fadeInUp","prevent_close_on_background_click":"yes","entrance_animation_duration":{"unit":"px","size":1.2,"sizes":[]},"a11y_navigation":"yes","triggers":{"page_load_delay":2,"page_load":"yes"},"timing":{"times_times":1,"times_period":"week","times":"yes"}}" data-elementor-post-type="elementor_library"> <div class="elementor-element elementor-element-bb839d5 e-con-full intro-main e-flex e-con e-parent" data-id="bb839d5" data-element_type="container" role="dialog" aria-modal="true" aria-labelledby="welcome-title" aria-describedby="welcome-desc"> <div class="elementor-element elementor-element-1d3675d elementor-widget elementor-widget-heading" data-id="1d3675d" data-element_type="widget" id="welcome-title" data-widget_type="heading.default"> <h2 class="elementor-heading-title elementor-size-default">Welcome to YFEOS by Nikos Iosif</h2> </div> <div class="elementor-element elementor-element-a1bac25 elementor-widget elementor-widget-text-editor" data-id="a1bac25" data-element_type="widget" id="welcome-desc" data-widget_type="text-editor.default"> <h5>Inspired by the textile creations of the artist, NIkos Iosif, YFEOS [ i ˈf ɛ ɔ s ]  brings wearable art that inspires, empowers and guides you. Everyday, everywhere, Always.</h5><h5>We begin our journey of #weaveYourlife with our first collection, <strong><em>Hide and Chic: Rooster edition</em></strong>, inspired by the artworks <strong><em>She Hides</em></strong> and <em><strong>The Girl with the Rooster</strong></em> in limited edition items, carefully handcrafted to perfection. </h5><h5>Pre-orders open soon, and the production will start once the pre-order phase is concluded.<br />We do not mass-produce. We recreate.</h5><h5>Stay tuned to be the first one to claim your piece of wearable art. </h5> </div> <div class="elementor-element elementor-element-7405364 elementor-button-align-center elementor-widget__width-auto elementor-widget elementor-widget-form" data-id="7405364" data-element_type="widget" data-settings="{"step_next_label":"Next","step_previous_label":"Previous","button_width":"100","step_type":"number_text","step_icon_shape":"circle"}" data-widget_type="form.default"> <form class="elementor-form" method="post" name="SUBSCRIBE-" aria-label="SUBSCRIBE-" action=""> <input type="hidden" name="post_id" value="2539"/> <input type="hidden" name="form_id" value="7405364"/> <input type="hidden" name="referer_title" value="Home" /> <input type="hidden" name="queried_id" value="2403"/> <div class="elementor-form-fields-wrapper elementor-labels-above"> <div class="elementor-field-type-text elementor-field-group elementor-column elementor-field-group-welcomename elementor-col-50"> <label for="form-field-welcomename" class="elementor-field-label"> Ονοματεπώνυμο </label> <input size="1" type="text" name="form_fields[welcomename]" id="form-field-welcomename" class="elementor-field elementor-size-sm elementor-field-textual" placeholder="π.χ. Μαρία Παπαδοπούλου"> </div> <div class="elementor-field-type-email elementor-field-group elementor-column elementor-field-group-welcomeemail elementor-col-50 elementor-field-required elementor-mark-required"> <label for="form-field-welcomeemail" class="elementor-field-label"> Email </label> <input size="1" type="email" name="form_fields[welcomeemail]" id="form-field-welcomeemail" class="elementor-field elementor-size-sm elementor-field-textual" placeholder="π.χ. example@mail.com" required="required"> </div> <div class="elementor-field-type-acceptance elementor-field-group elementor-column elementor-field-group-field_ef25316 elementor-col-100 elementor-field-required elementor-mark-required"> <div class="elementor-field-subgroup"> <span class="elementor-field-option"> <input type="checkbox" name="form_fields[field_ef25316]" id="form-field-field_ef25316" class="elementor-field elementor-size-sm elementor-acceptance-field" required="required"> <label for="form-field-field_ef25316">Συμφωνώ να λαμβάνω νέα από τον Yfeos*</label> </span> </div> </div> <div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons"> <button class="elementor-button elementor-size-sm" type="submit"> <span class="elementor-button-content-wrapper"> <span class="elementor-button-icon"> <svg aria-hidden="true" class="e-font-icon-svg e-far-envelope" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg> </span> <span class="elementor-button-text">Βάλε με στην ΛΙΣΤΑ</span> </span> </button> </div> </div> <input type="hidden" name="trp-form-language" value="el"/></form> </div> <div class="elementor-element elementor-element-a1e3265 elementor-headline--style-highlight elementor-widget elementor-widget-animated-headline" data-id="a1e3265" data-element_type="widget" data-settings="{"marker":"underline_zigzag","highlighted_text":"#weaveYourlife","headline_style":"highlight","highlight_animation_duration":1200}" data-widget_type="animated-headline.default"> <h3 class="elementor-headline"> <span class="elementor-headline-dynamic-wrapper elementor-headline-text-wrapper"> <span class="elementor-headline-dynamic-text elementor-headline-text-active">#weaveYourlife</span> </span> </h3> </div> <div class="elementor-element elementor-element-4ecbb3e elementor-widget elementor-widget-text-editor" data-id="4ecbb3e" data-element_type="widget" data-widget_type="text-editor.default"> <p>*We respect your privacy and your data. You may review our <a title="Privacy and Conditions" href="https://yfeos.com/el/privacy/">Πολιτική Απορρήτου</a></p> </div> </div> </div> <script> (function(){ // Utility: find a nearby title for a product card function findTitle(node){ // Common selectors in WooCommerce/Elementor loops; extend as needed const titleEl = node.closest('.product, [data-elementor-type="loop-item"], .elementor-loop-item') ?.querySelector('.woocommerce-loop-product__title, .elementor-heading-title, .product_title, h2, h3'); return titleEl?.textContent?.trim() || ''; } function enhanceLinkedImages(root){ // Links that only have an image or no visible text root.querySelectorAll('a').forEach(a => { // Ignore obvious nav/utility links if (a.closest('.site-nav, .menu, .pagination')) return; // If link already has accessible name (aria-label or readable text), skip const hasAria = a.hasAttribute('aria-label'); const visibleText = (a.textContent || '').trim(); const img = a.querySelector('img'); // If there's an image, ensure it has alt; if not, set from nearby title if (img) { if (!img.hasAttribute('alt') || img.getAttribute('alt').trim() === '') { const candidate = findTitle(img) || img.getAttribute('data-title') || ''; if (candidate) img.setAttribute('alt', candidate); } } // If link has no visible text AND no aria-label, set aria-label from img alt (or nearby title) if (!hasAria && visibleText === '') { const label = (img && img.getAttribute('alt')?.trim()) || findTitle(a) || ''; if (label) a.setAttribute('aria-label', label); } }); } function scan(){ enhanceLinkedImages(document); } if (document.readyState !== 'loading') scan(); else document.addEventListener('DOMContentLoaded', scan); const mo = new MutationObserver(scan); mo.observe(document.documentElement, { childList:true, subtree:true }); })(); </script> <script> const lazyloadRunObserver = () => { const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { entries.forEach( ( entry ) => { if ( entry.isIntersecting ) { let lazyloadBackground = entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( 'e-lazyloaded' ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: '200px 0px 200px 0px' } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events = [ 'DOMContentLoaded', 'elementor/lazyload/observe', ]; events.forEach( ( event ) => { document.addEventListener( event, lazyloadRunObserver ); } ); </script> <script> (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); </script> <link rel='stylesheet' id='wc-blocks-style-css' href='https://yfeos.com/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css' media='all' /> <link rel='stylesheet' id='woof_sections_style-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/sections/css/sections.css' media='all' /> <link rel='stylesheet' id='elementor-post-303-css' href='https://yfeos.com/wp-content/uploads/elementor/css/post-303.css' media='all' /> <link rel='stylesheet' id='widget-search-css' href='https://yfeos.com/wp-content/plugins/elementor-pro/assets/css/widget-search.min.css' media='all' /> <link rel='stylesheet' id='woof-front-builder-css-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/front_builder/css/front-builder.css' media='all' /> <link rel='stylesheet' id='woof-slideout-tab-css-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/slideout/css/jquery.tabSlideOut.css' media='all' /> <link rel='stylesheet' id='woof-slideout-css-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/slideout/css/slideout.css' media='all' /> <link rel='stylesheet' id='woof_tooltip-css-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/tooltip/css/tooltipster.bundle.min.css' media='all' /> <link rel='stylesheet' id='woof_tooltip-css-noir-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/tooltip/css/plugins/tooltipster/sideTip/themes/tooltipster-sideTip-noir.min.css' media='all' /> <link rel='stylesheet' id='ion.range-slider-css' href='https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/ion.range-slider/css/ion.rangeSlider.css' media='all' /> <script id="woof_front-js-extra"> var woof_filter_titles = {"by_price":"by_price","pa_size":"\u03a0\u03c1\u03bf\u03ca\u03cc\u03bd Size","by_instock":"by_instock","pa_color":"\u03a0\u03c1\u03bf\u03ca\u03cc\u03bd Color"}; var woof_ext_filter_titles = {"woof_author":"By author","stock":"In stock","onsales":"On sale","byrating":"By rating","woof_text":"By text"}; </script> <script id="woof_front-js-before"> const woof_front_nonce = "3cac74d9ab"; var woof_is_permalink =1; var woof_shop_page = ""; var woof_m_b_container =".woocommerce-products-header"; var woof_really_curr_tax = {}; var woof_current_page_link = location.protocol + '//' + location.host + location.pathname; /*lets remove pagination from woof_current_page_link*/ woof_current_page_link = woof_current_page_link.replace(/\page\/[0-9]+/, ""); woof_current_page_link = "https://yfeos.com/el/shop/"; var woof_link = 'https://yfeos.com/wp-content/plugins/woocommerce-products-filter/'; var woof_ajaxurl = "https://yfeos.com/wp-admin/admin-ajax.php"; var woof_lang = { 'orderby': "orderby", 'date': "date", 'perpage': "per page", 'pricerange': "price range", 'menu_order': "menu order", 'popularity': "popularity", 'rating': "rating", 'price': "price low to high", 'price-desc': "price high to low", 'clear_all': "Clear All", 'list_opener': "Сhild list opener", }; if (typeof woof_lang_custom == 'undefined') { var woof_lang_custom = {};/*!!important*/ } var woof_is_mobile = 0; var woof_show_price_search_button = 0; var woof_show_price_search_type = 0; var woof_show_price_search_type = 1; var swoof_search_slug = "swoof"; var icheck_skin = {}; icheck_skin.skin = "square"; icheck_skin.color = "grey"; var woof_select_type = 'chosen'; var woof_current_values = '[]'; var woof_lang_loading = "Loading ..."; woof_lang_loading = "Fetching"; var woof_lang_show_products_filter = "show products filter"; var woof_lang_hide_products_filter = "hide products filter"; var woof_lang_pricerange = "price range"; var woof_use_beauty_scroll =1; var woof_autosubmit =0; var woof_ajaxurl = "https://yfeos.com/wp-admin/admin-ajax.php"; /*var woof_submit_link = "";*/ var woof_is_ajax = 0; var woof_ajax_redraw = 0; var woof_ajax_page_num =1; var woof_ajax_first_done = false; var woof_checkboxes_slide_flag = 1; /*toggles*/ var woof_toggle_type = "text"; var woof_toggle_closed_text = "+"; var woof_toggle_opened_text = "-"; var woof_toggle_closed_image = "https://yfeos.com/wp-content/plugins/woocommerce-products-filter/img/plus.svg"; var woof_toggle_opened_image = "https://yfeos.com/wp-content/plugins/woocommerce-products-filter/img/minus.svg"; var woof_save_state_checkbox = 1; /*indexes which can be displayed in red buttons panel*/ var woof_accept_array = ["min_price", "orderby", "perpage", "woof_author","stock","onsales","byrating","woof_text","min_rating","product_brand","product_visibility","product_cat","product_tag","pa_color","pa_metal","pa_price","pa_size"]; /*for extensions*/ var woof_ext_init_functions = null; woof_ext_init_functions = '{"by_author":"woof_init_author","by_instock":"woof_init_instock","by_onsales":"woof_init_onsales","by_text":"woof_init_text","label":"woof_init_labels","select_radio_check":"woof_init_select_radio_check"}'; var woof_overlay_skin = "default"; function woof_js_after_ajax_done() { jQuery(document).trigger('woof_ajax_done'); } var woof_front_sd_is_a=1;var woof_front_show_notes=1;var woof_lang_front_builder_del="Are you sure you want to delete this filter-section?";var woof_lang_front_builder_options="Options";var woof_lang_front_builder_option="Option";var woof_lang_front_builder_section_options="Section Options";var woof_lang_front_builder_description="Description";var woof_lang_front_builder_close="Close";var woof_lang_front_builder_suggest="Suggest the feature";var woof_lang_front_builder_good_to_use="good to use in content areas";var woof_lang_front_builder_confirm_sd="Smart Designer item will be created and attached to this filter section and will cancel current type, proceed?";var woof_lang_front_builder_creating="Creating";var woof_lang_front_builder_shortcode="Shortcode";var woof_lang_front_builder_layout="Layout";var woof_lang_front_builder_filter_section="Section options";var woof_lang_front_builder_filter_redrawing="filter redrawing";var woof_lang_front_builder_filter_redrawn="redrawn";var woof_lang_front_builder_filter_redrawn="redrawn";var woof_lang_front_builder_title_top_info="this functionality is only visible for the site administrator";var woof_lang_front_builder_title_top_info_demo="demo mode is activated, and results are visible only to you";;var woof_lang_front_builder_select="+ Add filter section"; </script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/front_comprssd.js" id="woof_front-js"></script> <script id="woof_url_parser-js-extra"> var url_parser_data = {"filters":{"pa_price":"price","product_cat":"product_cat","pa_size":"size","by_instock":"by_instock","pa_color":"color","product_tag":"product_tag","by_onsales":"by_onsales","min_rating":"min_rating","by_rating":"by_rating","woof_text":"name","by_text":"by_text","woof_author":"author","by_author":"by_author","product_brand":"product_brand","product_visibility":"product_visibility","pa_metal":"metal","instock":"instock","onsale":"onsale","featured":"featured","backorder_not_in":"backorder_not_in","rev_pa_price":"price","rev_product_cat":"product_cat","rev_pa_size":"size","rev_pa_color":"color","rev_product_tag":"product_tag","rev_product_brand":"product_brand","rev_product_visibility":"product_visibility","rev_pa_metal":"metal"},"special":{"stock":"instock","onsales":"onsale","product_visibility":"featured","backorder":"backorder_not_in"}}; </script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/url_request/js/url_parser.js" id="woof_url_parser-js"></script> <script id="wpa-toolbar-js-extra"> var wpatb = {"location":"body","is_rtl":"ltr","is_right":"default","responsive":"a11y-non-responsive","contrast":"\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03a5\u03c8\u03b7\u03bb\u03ae\u03c2 \u0391\u03bd\u03c4\u03af\u03b8\u03b5\u03c3\u03b7\u03c2","grayscale":"\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u0394\u03b9\u03b1\u03b2\u03ac\u03b8\u03bc\u03b9\u03c3\u03b7\u03c2 \u0393\u03ba\u03c1\u03b9","fontsize":"\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u039c\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2 \u0393\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd","custom_location":"standard-location","enable_grayscale":"false","enable_fontsize":"true","enable_contrast":"true"}; var wpa11y = {"path":"https:\/\/yfeos.com\/wp-content\/plugins\/wp-accessibility\/toolbar\/css\/a11y-contrast.css?version=2.2.6"}; </script> <script src="https://yfeos.com/wp-content/plugins/wp-accessibility/js/wpa-toolbar.min.js" id="wpa-toolbar-js" defer data-wp-strategy="defer"></script> <script src="https://yfeos.com/wp-includes/js/dist/hooks.min.js" id="wp-hooks-js"></script> <script src="https://yfeos.com/wp-includes/js/dist/i18n.min.js" id="wp-i18n-js"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); </script> <script id="edac-frontend-fixes-js-extra"> var edac_frontend_fixes = []; </script> <script id="edac-frontend-fixes-js-translations"> ( function( domain, translations ) { var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; localeData[""].domain = domain; wp.i18n.setLocaleData( localeData, domain ); } )( "accessibility-checker", {"translation-revision-date":"YEAR-MO-DA HO:MI+ZONE","generator":"WP-CLI\/2.12.0","source":"build\/frontendFixes.bundle.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"el","plural-forms":"nplurals=2; plural=(n != 1);"},"opens a new window":["\u03b1\u03bd\u03bf\u03af\u03b3\u03b5\u03b9 \u03c3\u03b5 \u03bd\u03ad\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf"],"EDAC: Did not find a matching target ID on the page for the skip link.":["EDAC: \u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03b1\u03bd\u03c4\u03af\u03c3\u03c4\u03bf\u03b9\u03c7\u03bf ID \u03c3\u03c4\u03cc\u03c7\u03bf\u03c5 \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03bf\u03bd \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf \u03c0\u03b1\u03c1\u03ac\u03ba\u03b1\u03bc\u03c8\u03b7\u03c2."],"EDAC: Error updating history for skip link.":["EDAC: \u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b9\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03bf\u03cd \u03b3\u03b9\u03b1 \u03c4\u03bf\u03bd \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf \u03c0\u03b1\u03c1\u03ac\u03ba\u03b1\u03bc\u03c8\u03b7\u03c2."]}}} ); </script> <script src="https://yfeos.com/wp-content/plugins/accessibility-checker/build/frontendFixes.bundle.js" id="edac-frontend-fixes-js"></script> <script src="https://yfeos.com/wp-content/themes/hello-elementor/assets/js/hello-frontend.js" id="hello-theme-frontend-js"></script> <script src="https://yfeos.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js" id="elementor-webpack-runtime-js"></script> <script src="https://yfeos.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js" id="elementor-frontend-modules-js"></script> <script src="https://yfeos.com/wp-includes/js/jquery/ui/core.min.js" id="jquery-ui-core-js"></script> <script id="elementor-frontend-js-before"> var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"M\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03bf Facebook","shareOnTwitter":"\u039c\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03bf Twitter","pinIt":"\u039a\u03b1\u03c1\u03c6\u03af\u03c4\u03c3\u03c9\u03bc\u03b1","download":"\u039b\u03ae\u03c8\u03b7","downloadImage":"\u039a\u03b1\u03c4\u03ad\u03b2\u03b1\u03c3\u03bc\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2","fullscreen":"\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03bf\u03b8\u03cc\u03bd\u03b7","zoom":"\u039c\u03b5\u03b3\u03ad\u03bd\u03b8\u03c5\u03bd\u03c3\u03b7","share":"\u039a\u03bf\u03b9\u03bd\u03ae \u03c7\u03c1\u03ae\u03c3\u03b7","playVideo":"\u0391\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae \u0392\u03af\u03bd\u03c4\u03b5\u03bf","previous":"\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf","next":"\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf","close":"\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"\u039a\u03b1\u03c4\u03b1\u03ba\u03cc\u03c1\u03c5\u03c6\u03b7 \u039a\u03b9\u03bd\u03b7\u03c4\u03ae \u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"\u039f\u03c1\u03b9\u03b6\u03cc\u03bd\u03c4\u03b9\u03b1 \u039a\u03b9\u03bd\u03b7\u03c4\u03ae \u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"\u03a6\u03bf\u03c1\u03b7\u03c4\u03cc\u03c2 \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae\u03c2","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}}, "hasCustomBreakpoints":false},"version":"3.32.5","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true,"mega-menu":true,"e_pro_variables":true},"urls":{"assets":"https:\/\/yfeos.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/yfeos.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/yfeos.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"335ce11d54"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","woocommerce_notices_elements":[],"hello_header_logo_type":"logo","hello_footer_logo_type":"logo"},"post":{"id":2759,"title":"Accessibility%20Report%20-%20Yfeos","excerpt":"","featuredImage":false}}; </script> <script src="https://yfeos.com/wp-content/plugins/elementor/assets/js/frontend.min.js" id="elementor-frontend-js"></script> <script src="https://yfeos.com/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js" id="e-sticky-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js" id="sourcebuster-js-js"></script> <script id="wc-order-attribution-js-extra"> var wc_order_attribution = {"params":{"lifetime":1.0000000000000001e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/yfeos.com\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; </script> <script src="https://yfeos.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js" id="wc-order-attribution-js"></script> <script id="wp-accessibility-js-extra"> var wpa = {"skiplinks":{"enabled":false,"output":""},"target":"1","tabindex":"1","underline":{"enabled":true,"target":"a"},"videos":"","dir":"ltr","lang":"el","titles":"1","labels":"1","wpalabels":{"s":"Search","author":"Name","email":"Email","url":"Website","comment":"Comment"},"alt":"1","altSelector":".hentry img[alt]:not([alt=\"\"]), .comment-content img[alt]:not([alt=\"\"]), #content img[alt]:not([alt=\"\"]),.entry-content img[alt]:not([alt=\"\"])","current":"","errors":"","tracking":"1","ajaxurl":"https:\/\/yfeos.com\/wp-admin\/admin-ajax.php","security":"a00fd6bbab","action":"wpa_stats_action","url":"https:\/\/yfeos.com\/el\/accessibility-report\/","post_id":"2759","continue":"","pause":"Pause video","play":"Play video","restUrl":"https:\/\/yfeos.com\/el\/wp-json\/wp\/v2\/media","ldType":"button","ldHome":"https:\/\/yfeos.com\/el","ldText":"<span class=\"dashicons dashicons-media-text\" aria-hidden=\"true\"><\/span><span class=\"screen-reader\">\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae<\/span>"}; </script> <script src="https://yfeos.com/wp-content/plugins/wp-accessibility/js/wp-accessibility.min.js" id="wp-accessibility-js" defer data-wp-strategy="defer"></script> <script id="cmplz-cookiebanner-js-extra"> var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"0","banner_version":"27","version":"7.4.2","store_consent":"","do_not_track_enabled":"","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"","soft_cookiewall":"","dismiss_on_scroll":"1","cookie_expiry":"365","url":"https:\/\/yfeos.com\/el\/wp-json\/complianz\/v1\/","locale":"lang=el&locale=el","set_cookies_on_root":"0","cookie_domain":"","current_policy_id":"36","cookie_path":"\/","categories":{"statistics":"\u03c3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac","marketing":"\u03b5\u03bc\u03c0\u03bf\u03c1\u03b9\u03ba\u03ae\u03c2 \u03c0\u03c1\u03bf\u03ce\u03b8\u03b7\u03c3\u03b7\u03c2"},"tcf_active":"","placeholdertext":"\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b4\u03b5\u03c7\u03c4\u03b5\u03af\u03c4\u03b5 cookies {category} \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf","css_file":"https:\/\/yfeos.com\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=27","page_links":{"eu":{"cookie-statement":{"title":"Privacy-Terms","url":"https:\/\/yfeos.com\/el\/privacy\/"},"privacy-statement":{"title":"Privacy-Terms","url":"https:\/\/yfeos.com\/el\/privacy\/"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b4\u03b5\u03c7\u03c4\u03b5\u03af\u03c4\u03b5 cookies {category} \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf"}; </script> <script defer src="https://yfeos.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js" id="cmplz-cookiebanner-js"></script> <script id="cmplz-cookiebanner-js-after"> if ('undefined' != typeof window.jQuery) { jQuery(document).ready(function ($) { $(document).on('elementor/popup/show', () => { let rev_cats = cmplz_categories.reverse(); for (let key in rev_cats) { if (rev_cats.hasOwnProperty(key)) { let category = cmplz_categories[key]; if (cmplz_has_consent(category)) { document.querySelectorAll('[data-category="' + category + '"]').forEach(obj => { cmplz_remove_placeholder(obj); }); } } } let services = cmplz_get_services_on_page(); for (let key in services) { if (services.hasOwnProperty(key)) { let service = services[key].service; let category = services[key].category; if (cmplz_has_service_consent(service, category)) { document.querySelectorAll('[data-service="' + service + '"]').forEach(obj => { cmplz_remove_placeholder(obj); }); } } } }); }); } document.addEventListener("cmplz_enable_category", function(consentData) { var category = consentData.detail.category; var services = consentData.detail.services; var blockedContentContainers = []; let selectorVideo = '.cmplz-elementor-widget-video-playlist[data-category="'+category+'"],.elementor-widget-video[data-category="'+category+'"]'; let selectorGeneric = '[data-cmplz-elementor-href][data-category="'+category+'"]'; for (var skey in services) { if (services.hasOwnProperty(skey)) { let service = skey; selectorVideo +=',.cmplz-elementor-widget-video-playlist[data-service="'+service+'"],.elementor-widget-video[data-service="'+service+'"]'; selectorGeneric +=',[data-cmplz-elementor-href][data-service="'+service+'"]'; } } document.querySelectorAll(selectorVideo).forEach(obj => { let elementService = obj.getAttribute('data-service'); if ( cmplz_is_service_denied(elementService) ) { return; } if (obj.classList.contains('cmplz-elementor-activated')) return; obj.classList.add('cmplz-elementor-activated'); if ( obj.hasAttribute('data-cmplz_elementor_widget_type') ){ let attr = obj.getAttribute('data-cmplz_elementor_widget_type'); obj.classList.removeAttribute('data-cmplz_elementor_widget_type'); obj.classList.setAttribute('data-widget_type', attr); } if (obj.classList.contains('cmplz-elementor-widget-video-playlist')) { obj.classList.remove('cmplz-elementor-widget-video-playlist'); obj.classList.add('elementor-widget-video-playlist'); } obj.setAttribute('data-settings', obj.getAttribute('data-cmplz-elementor-settings')); blockedContentContainers.push(obj); }); document.querySelectorAll(selectorGeneric).forEach(obj => { let elementService = obj.getAttribute('data-service'); if ( cmplz_is_service_denied(elementService) ) { return; } if (obj.classList.contains('cmplz-elementor-activated')) return; if (obj.classList.contains('cmplz-fb-video')) { obj.classList.remove('cmplz-fb-video'); obj.classList.add('fb-video'); } obj.classList.add('cmplz-elementor-activated'); obj.setAttribute('data-href', obj.getAttribute('data-cmplz-elementor-href')); blockedContentContainers.push(obj.closest('.elementor-widget')); }); /** * Trigger the widgets in Elementor */ for (var key in blockedContentContainers) { if (blockedContentContainers.hasOwnProperty(key) && blockedContentContainers[key] !== undefined) { let blockedContentContainer = blockedContentContainers[key]; if (elementorFrontend.elementsHandler) { elementorFrontend.elementsHandler.runReadyTrigger(blockedContentContainer) } var cssIndex = blockedContentContainer.getAttribute('data-placeholder_class_index'); blockedContentContainer.classList.remove('cmplz-blocked-content-container'); blockedContentContainer.classList.remove('cmplz-placeholder-' + cssIndex); } } }); </script> <script id="wc-cart-fragments-js-extra"> var wc_cart_fragments_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"https:\/\/yfeos.com\/el\/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_5c09199251d2541d123adcaa85719cea","fragment_name":"wc_fragments_5c09199251d2541d123adcaa85719cea","request_timeout":"5000"}; </script> <script src="https://yfeos.com/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js" id="wc-cart-fragments-js" defer data-wp-strategy="defer"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/slideout/js/jquery.tabSlideOut.js" id="woof-slideout-js-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/slideout/js/slideout.js" id="woof-slideout-init-js"></script> <script src="https://yfeos.com/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js" id="elementor-pro-webpack-runtime-js"></script> <script id="elementor-pro-frontend-js-before"> var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/yfeos.com\/wp-admin\/admin-ajax.php","nonce":"5bff3e9f11","urls":{"assets":"https:\/\/yfeos.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/yfeos.com\/el\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}}, "woocommerce":{"menu_cart":{"cart_page_url":"https:\/\/yfeos.com\/el\/cart\/","checkout_page_url":"https:\/\/yfeos.com\/el\/checkout\/","fragments_nonce":"847cba0194"}}, "facebook_sdk":{"lang":"el","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/yfeos.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; </script> <script src="https://yfeos.com/wp-content/plugins/elementor-pro/assets/js/frontend.min.js" id="elementor-pro-frontend-js"></script> <script src="https://yfeos.com/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js" id="pro-elements-handlers-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/tooltip/js/tooltipster.bundle.min.js" id="woof_tooltip-js-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/icheck/icheck.min.js" id="icheck-jquery-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/by_author/js/by_author.js" id="woof_by_author_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/by_instock/js/by_instock.js" id="woof_by_instock_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/by_onsales/js/by_onsales.js" id="woof_by_onsales_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/by_text/assets/js/front.js" id="woof_by_text_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/label/js/html_types/label.js" id="woof_label_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/sections/js/sections.js" id="woof_sections_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/select_radio_check/js/html_types/select_radio_check.js" id="woof_select_radio_check_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/ext/smart_designer/js/front.js" id="woof_sd_html_items-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/chosen/chosen.jquery.js" id="chosen-drop-down-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce-products-filter/js/ion.range-slider/js/ion.rangeSlider.min.js" id="ion.range-slider-js"></script> <script src="https://yfeos.com/wp-includes/js/jquery/ui/mouse.min.js" id="jquery-ui-mouse-js"></script> <script src="https://yfeos.com/wp-includes/js/jquery/ui/slider.min.js" id="jquery-ui-slider-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce/assets/js/jquery-ui-touch-punch/jquery-ui-touch-punch.min.js" id="wc-jquery-ui-touchpunch-js"></script> <script src="https://yfeos.com/wp-content/plugins/woocommerce/assets/js/accounting/accounting.min.js" id="wc-accounting-js"></script> <script id="wc-price-slider-js-extra"> var woocommerce_price_slider_params = {"currency_format_num_decimals":"0","currency_format_symbol":"\u20ac","currency_format_decimal_sep":",","currency_format_thousand_sep":".","currency_format":"%v\u00a0%s"}; </script> <script src="https://yfeos.com/wp-content/plugins/woocommerce/assets/js/frontend/price-slider.min.js" id="wc-price-slider-js"></script> <script type="text/plain" data-service="google-analytics" data-category="statistics" async data-category="statistics" data-cmplz-src="https://www.googletagmanager.com/gtag/js?id=G-WG9Y6NTM5K"></script><!-- Statistics script Complianz GDPR/CCPA --> <script type="text/plain" data-category="statistics">window['gtag_enable_tcf_support'] = false; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-WG9Y6NTM5K', { cookie_flags:'secure;samesite=none', }); </script><script> document.addEventListener('DOMContentLoaded', () => { const nav = document.querySelector('.legal-sidebar .legal-nav'); if (!nav) return; // Collect links and map to anchors/sections const links = Array.from(nav.querySelectorAll('a[href^="#"]')); const map = links.map(a => { const id = a.getAttribute('href').slice(1); const anchor = document.getElementById(id); // Elementor Menu Anchor if (!anchor) return null; const panel = anchor.closest('.legal-section') || anchor.parentElement; const li = a.closest('.elementor-icon-list-item'); // ARIA for tab semantics a.setAttribute('role','tab'); a.setAttribute('aria-controls', id + '-panel'); panel.setAttribute('role','tabpanel'); if (!panel.id) panel.id = id + '-panel'; return { id, a, li, anchor, panel }; }).filter(Boolean); function setActive(id, scrollToTop){ map.forEach(({ id:_id, a, li, panel }) => { const on = (_id === id); a.classList.toggle('is-active', on); a.setAttribute('aria-selected', on ? 'true' : 'false'); if (li) li.classList.toggle('is-active', on); panel.classList.toggle('is-current', on); }); if (scrollToTop){ const wrap = document.querySelector('.legal-content'); if (wrap){ const headerOffset = 110; // adjust if your sticky header height changes const y = wrap.getBoundingClientRect().top + window.pageYOffset - headerOffset; window.scrollTo({ top: y, behavior: 'smooth' }); } } } // Click switches "tab" (no page jump) map.forEach(({ id, a }) => { a.addEventListener('click', (e) => { e.preventDefault(); setActive(id, true); history.replaceState(null, '', '#' + id); }); // Keyboard a.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); a.click(); } }); }); // Init from hash or default to first const initial = (location.hash || '').replace('#',''); setActive(map.some(m => m.id === initial) ? initial : (map[0] && map[0].id), false); }); </script> <script> /* ========================================================================= Yfeos — Site-wide Accessibility + UI Utilities (Elementor / WooCommerce) 1) Popups (Elementor): force dialog semantics + stable modal behavior 2) De-dupe cloned header menu toggle IDs + keep aria-controls paired 3) Footer social icons: unique, descriptive labels per network 4) Mini-cart: hide focusables when panel is hidden (fix aria-hidden-focus) ------------------------------------------------------------------------- */ /* -------------------------- 1) POPUP a11y hardener -------------------------- */ /* Load this as early as possible (HEAD) so audits snapshot the normalized DOM. */ (function () { const Q = 'div[id^="elementor-popup-modal-"]'; function ensureLabel(modal) { let title = modal.querySelector('h1, h2, h3, [role="heading"], .elementor-heading-title'); if (title) { if (!title.id) { const suffix = modal.id ? modal.id.replace(/\D+/g,'') : Math.random().toString(36).slice(2); title.id = `popup-title-${suffix}`; } if (modal.getAttribute('aria-labelledby') !== title.id) { modal.setAttribute('aria-labelledby', title.id); } } else if (!modal.hasAttribute('aria-label')) { modal.setAttribute('aria-label','Dialog'); } } function asDialog(modal) { if (!modal || !(modal instanceof HTMLElement)) return; if (modal.getAttribute('role') !== 'dialog') modal.setAttribute('role','dialog'); if (!modal.hasAttribute('aria-hidden')) modal.setAttribute('aria-hidden','true'); if (modal.getAttribute('aria-hidden') === 'true' && modal.hasAttribute('aria-modal')) { modal.removeAttribute('aria-modal'); } if (modal.getAttribute('tabindex') !== '-1') modal.setAttribute('tabindex','-1'); ensureLabel(modal); } function onOpen(modal) { asDialog(modal); modal.setAttribute('aria-hidden','false'); modal.setAttribute('aria-modal','true'); const focusable = modal.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); (focusable || modal).focus({preventScroll:true}); } function onClose(modal) { modal.setAttribute('aria-hidden','true'); modal.removeAttribute('aria-modal'); } // Normalize any pre-rendered popups early document.addEventListener('DOMContentLoaded', () => { document.querySelectorAll(Q).forEach(asDialog); }); // Guard against later mutations (Elementor/other scripts) const mo = new MutationObserver(muts => { for (const m of muts) { if (m.type === 'childList') { m.addedNodes && Array.from(m.addedNodes).forEach(n => { if (n.nodeType !== 1) return; if (n.matches?.(Q)) asDialog(n); n.querySelectorAll?.(Q).forEach(asDialog); }); } else if (m.type === 'attributes') { const el = m.target; if (!el.matches?.(Q)) continue; if (m.attributeName === 'role' && el.getAttribute('role') !== 'dialog') { el.setAttribute('role','dialog'); } if (m.attributeName === 'aria-hidden' && el.getAttribute('aria-hidden') === 'true') { el.removeAttribute('aria-modal'); } if (m.attributeName === 'aria-labelledby') ensureLabel(el); } } }); mo.observe(document.documentElement, { subtree: true, childList: true, attributes: true, attributeFilter: ['role','aria-hidden','aria-modal','aria-labelledby','tabindex'] }); // Elementor lifecycle hooks (when available) function hookElementor() { const ef = window.elementorFrontend; if (!ef?.hooks) return false; ef.hooks.addAction('popup:before_open', (id) => { const modal = document.getElementById('elementor-popup-modal-' + id) || document.querySelector(Q); if (modal) asDialog(modal); }); ef.hooks.addAction('popup:after_open', (id) => { const modal = document.getElementById('elementor-popup-modal-' + id) || document.querySelector(Q); if (modal) onOpen(modal); }); ef.hooks.addAction('popup:after_close', (id) => { const modal = document.getElementById('elementor-popup-modal-' + id) || document.querySelector(Q); if (modal) onClose(modal); }); return true; } if (!hookElementor()) { document.addEventListener('readystatechange', hookElementor, { once: true }); window.addEventListener('elementor/frontend/init', hookElementor, { once: true }); } })(); /* ------------------------------ Helpers ------------------------------ */ document.addEventListener('DOMContentLoaded', () => { const idle = (fn) => (window.requestIdleCallback ? requestIdleCallback(fn, {timeout: 500}) : setTimeout(fn, 0)); /* -------- 2) De-dupe cloned menu toggle IDs + pair aria-controls -------- */ idle(() => { const buckets = {}; document.querySelectorAll('button[id^="menu-toggle-"]').forEach(btn => { (buckets[btn.id] ||= []).push(btn); }); Object.entries(buckets).forEach(([baseId, list]) => { if (list.length < 2) return; list.forEach((btn, i) => { if (i === 0) return; // keep original let n = i + 1, newId = `${baseId}-${n}`; while (document.getElementById(newId)) { n++; newId = `${baseId}-${n}`; } btn.id = newId; const ctrl = btn.getAttribute('aria-controls'); if (!ctrl) return; const scope = btn.closest('header, nav') || document; let target = scope.querySelector('#' + ctrl); if (!target){ const baseCtrl = ctrl.replace(/-\d+$/, ''); target = scope.querySelector(`[id^="${baseCtrl}"]`); } if (target) btn.setAttribute('aria-controls', target.id); }); }); }); /* ---------------- 3) Footer social icons: descriptive labels ---------------- */ idle(() => { document.querySelectorAll('.elementor-social-icons-wrapper').forEach(wrapper => { const links = Array.from(wrapper.querySelectorAll('a.elementor-icon[href]')); const byNet = new Map(); links.forEach(a => { try { const u = new URL(a.href); const net = /instagram/i.test(u.hostname) ? 'Instagram' : /facebook/i.test(u.hostname) ? 'Facebook' : /tiktok/i.test(u.hostname) ? 'TikTok' : /x\.com|twitter/i.test(u.hostname) ? 'X' : null; if (!net) return; if (!byNet.has(net)) byNet.set(net, []); byNet.get(net).push({a,u}); } catch(e){} }); byNet.forEach((entries, net) => { if (entries.length === 1){ const {a} = entries[0]; a.setAttribute('aria-label', net); a.setAttribute('title', net); return; } entries.forEach(({a,u}, i) => { const tag = /profile|id=/.test(u.search + u.pathname) ? 'profile' : /pages|page/.test(u.pathname) ? 'page' : (i + 1); const label = `${net} (${tag})`; a.setAttribute('aria-label', label); a.setAttribute('title', label); }); }); }); }); /* ---------------- 4) Mini-cart: focus guard when hidden ---------------- */ (function initMiniCartFocusGuard(){ const PANEL = '.elementor-menu-cart__container'; const SUPPORTS_INERT = 'inert' in HTMLElement.prototype; function setUnfocusable(panel){ if (SUPPORTS_INERT) panel.inert = true; panel.style.pointerEvents = 'none'; panel.querySelectorAll('a, button, [tabindex], input, select, textarea').forEach(el => { if (!el.hasAttribute('data-y-tabindex-orig')) { const orig = el.getAttribute('tabindex'); el.setAttribute('data-y-tabindex-orig', orig == null ? '' : String(orig)); } el.setAttribute('tabindex','-1'); el.setAttribute('aria-hidden','true'); }); } function restoreFocusable(panel){ if (SUPPORTS_INERT) panel.inert = false; panel.style.pointerEvents = ''; panel.querySelectorAll('a, button, [tabindex], input, select, textarea').forEach(el => { const orig = el.getAttribute('data-y-tabindex-orig'); if (orig === '' || orig === null) el.removeAttribute('tabindex'); else el.setAttribute('tabindex', orig); el.removeAttribute('data-y-tabindex-orig'); el.removeAttribute('aria-hidden'); }); } function sync(panel){ const hidden = panel.getAttribute('aria-hidden') === 'true'; hidden ? setUnfocusable(panel) : restoreFocusable(panel); } function watch(panel){ sync(panel); const mo = new MutationObserver(muts => { for (const m of muts){ if (m.type === 'attributes' && m.attributeName === 'aria-hidden') { sync(panel); } } }); mo.observe(panel, { attributes: true, attributeFilter: ['aria-hidden'] }); } document.querySelectorAll(PANEL).forEach(watch); const ro = new MutationObserver(muts => { muts.forEach(m => { m.addedNodes && Array.from(m.addedNodes).forEach(n => { if (!(n instanceof HTMLElement)) return; if (n.matches?.(PANEL)) watch(n); else n.querySelectorAll?.(PANEL).forEach(watch); }); }); }); ro.observe(document.body, { childList: true, subtree: true }); if (window.elementorFrontend?.hooks) { elementorFrontend.hooks.addAction('frontend/element_ready/woocommerce-menu-cart.default', ($scope) => { $scope[0]?.querySelectorAll(PANEL).forEach(watch); }); } })(); }); </script> <!-- Google Analytics (minimal gtag.js) --> <script type="text/plain" data-service="google-analytics" data-category="statistics" async data-cmplz-src="https://www.googletagmanager.com/gtag/js?id=G-WG9Y6NTM5K"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); // Your GA4 Measurement ID gtag('config', 'G-WG9Y6NTM5K', { anonymize_ip: true, // GDPR-friendly send_page_view: true // auto pageview tracking }); </script> <script> document.addEventListener('DOMContentLoaded', () => { const menus = Array.from(document.querySelectorAll('#y-mobilemenu')); if (!menus.length) return; const state = new WeakMap(); function measureHeaderHeight(){ const hdr = document.querySelector('.site-header, .header--transparent'); const h = Math.round((hdr?.getBoundingClientRect().height) || 80); document.documentElement.style.setProperty('--header-h', h + 'px'); return h; } function getParts(root){ const toggle = root.querySelector('[id^="menu-toggle-"]'); const panel = root.querySelector('.e-n-menu-wrapper[id^="menubar-"]'); if (panel) panel.classList.add('y-mobilemenu-panel'); // keep styling after portal return { root, toggle, panel }; } function isOpen(toggle){ return toggle?.getAttribute('aria-expanded') === 'true'; } function ensureOverlay(st){ if (st.overlay && document.body.contains(st.overlay)) return st.overlay; const overlay = document.createElement('div'); overlay.className = 'y-menu-overlay'; // Click overlay → close overlay.addEventListener('click', () => { st.ctx.toggle.setAttribute('aria-expanded', 'false'); }); document.body.appendChild(overlay); st.overlay = overlay; return overlay; } function openMenu(ctx){ const { root, toggle, panel } = ctx; if (!root || !toggle || !panel) return; if (!state.has(panel)){ state.set(panel, { placeholder: document.createComment('y-mobilemenu-placeholder'), scrollY: 0, overlay: null, ctx }); } const st = state.get(panel); // Keep CSS var in sync with actual header height measureHeaderHeight(); // Insert placeholder, move panel to <body> if (panel.parentNode === root){ root.insertBefore(st.placeholder, panel); } document.body.appendChild(panel); // Next frame → mark open so CSS slides it in requestAnimationFrame(() => panel.classList.add('is-open')); // Add real overlay that starts below the header ensureOverlay(st); // in openMenu(ctx) AFTER ensureOverlay(st): const overlay = ensureOverlay(st); overlay.classList.add('is-visible'); // Lock background scroll st.scrollY = window.scrollY || document.documentElement.scrollTop || 0; document.body.classList.add('y-lock'); document.body.style.top = `-${st.scrollY}px`; } function closeMenu(ctx){ const { root, toggle, panel } = ctx; if (!root || !toggle || !panel || !state.has(panel)) return; const st = state.get(panel); // Hide panel and move back panel.classList.remove('is-open'); if (st.placeholder.parentNode){ root.insertBefore(panel, st.placeholder); st.placeholder.remove(); } else { root.appendChild(panel); } if (st.overlay){ st.overlay.classList.remove('is-visible'); } // Remove overlay if present if (st.overlay && st.overlay.parentNode){ st.overlay.remove(); st.overlay = null; } // Unlock scroll and restore position document.body.classList.remove('y-lock'); document.body.style.top = ''; window.scrollTo(0, st.scrollY || 0); } menus.forEach(root => { const ctx = getParts(root); if (!ctx.toggle || !ctx.panel) return; // React to aria-expanded changes const obs = new MutationObserver(() => { if (isOpen(ctx.toggle)) openMenu(ctx); else closeMenu(ctx); }); obs.observe(ctx.toggle, { attributes: true, attributeFilter: ['aria-expanded'] }); // Click outside (works even when panel is in <body>) document.addEventListener('click', (ev) => { if (!isOpen(ctx.toggle)) return; const insidePanel = ctx.panel.contains(ev.target); const onToggle = ctx.toggle.contains(ev.target); if (!insidePanel && !onToggle){ ctx.toggle.setAttribute('aria-expanded', 'false'); } }, { capture: true }); // ESC to close document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && isOpen(ctx.toggle)) { ctx.toggle.setAttribute('aria-expanded', 'false'); } }); // Safety on header swaps / page lifecycle window.addEventListener('pagehide', () => { if (isOpen(ctx.toggle)) ctx.toggle.setAttribute('aria-expanded', 'false'); }); document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'hidden' && isOpen(ctx.toggle)) { ctx.toggle.setAttribute('aria-expanded', 'false'); } }); // If the header height changes after load (e.g., shrink-on-scroll), keep overlay top correct window.addEventListener('scroll', () => { if (isOpen(ctx.toggle)) measureHeaderHeight(); }, { passive: true }); window.addEventListener('resize', () => { if (isOpen(ctx.toggle)) measureHeaderHeight(); }); }); }); </script> <script> document.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('.elementor-widget-woocommerce-menu-cart').forEach(widget => { const toggle = widget.querySelector('.elementor-menu-cart__toggle_button, .elementor-menu-cart__toggle') || widget.querySelector('[data-toggle="cart"]'); const panel = widget.querySelector('.elementor-menu-cart__container'); if (!toggle || !panel) return; const ph = document.createComment('y-cart-home'); panel.classList.add('y-cart-panel'); let overlay = null, headerRO; let lastFocus = null; const lock = { y: 0, on(){ this.y = window.scrollY || document.documentElement.scrollTop || 0; document.body.classList.add('y-lock'); document.body.style.top = `-${this.y}px`; }, off(){ document.body.classList.remove('y-lock'); document.body.style.top = ''; window.scrollTo(0, this.y || 0); } }; function measureHeaderHeight(){ const hdr = document.querySelector('.header-transparent-mobile') || document.querySelector('[data-elementor-type="header"]') || document.querySelector('.site-header'); const h = Math.round((hdr?.getBoundingClientRect().height) || 80); document.documentElement.style.setProperty('--header-h', h + 'px'); return { hdr, h }; } function startHeaderObserver(){ const { hdr } = measureHeaderHeight(); if (!hdr) return; if (headerRO) headerRO.disconnect(); headerRO = new ResizeObserver(() => measureHeaderHeight()); headerRO.observe(hdr); } function stopHeaderObserver(){ if (headerRO){ headerRO.disconnect(); headerRO = null; } } function ensureOverlay(){ if (overlay && document.body.contains(overlay)) return overlay; overlay = document.createElement('div'); overlay.className = 'y-cart-overlay'; overlay.addEventListener('click', closeCart); document.body.appendChild(overlay); return overlay; } function openCart(){ if (panel.parentNode === widget) widget.insertBefore(ph, panel); document.body.appendChild(panel); panel.setAttribute('aria-hidden','false'); panel.setAttribute('tabindex','-1'); // focusable container lastFocus = document.activeElement; measureHeaderHeight(); startHeaderObserver(); panel.style.left = ''; panel.style.right = ''; panel.style.top = ''; panel.style.transform = ''; panel.style.margin = ''; requestAnimationFrame(() => panel.classList.add('is-open')); panel.querySelector('.y-cart-close')?.remove(); const ov = ensureOverlay(); requestAnimationFrame(() => ov.classList.add('is-visible')); requestAnimationFrame(() => { const first = panel.querySelector('a,button,input,select,textarea,[tabindex]:not([tabindex="-1"])'); (first || panel).focus({ preventScroll:true }); }); toggle.setAttribute('aria-expanded', 'true'); widget.classList.add('elementor-menu-cart--shown'); lock.on(); } function closeCart(){ panel.setAttribute('aria-hidden','true'); panel.classList.remove('is-open'); if (overlay) overlay.classList.remove('is-visible'); const tidy = () => { panel.removeEventListener('transitionend', tidy); if (ph.parentNode){ ph.parentNode.insertBefore(panel, ph); ph.remove(); } else { widget.appendChild(panel); } if (overlay && overlay.parentNode) overlay.remove(); stopHeaderObserver(); lock.off(); toggle.setAttribute('aria-expanded', 'false'); widget.classList.remove('elementor-menu-cart--shown'); if (lastFocus) lastFocus.focus({ preventScroll:true }); }; panel.addEventListener('transitionend', tidy, { once: true }); } // Toggle control toggle.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const open = toggle.getAttribute('aria-expanded') === 'true'; open ? closeCart() : openCart(); }); // Close on ESC document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && toggle.getAttribute('aria-expanded') === 'true') closeCart(); }); // Close if any built-in or injected "X" is clicked panel.addEventListener('click', (e) => { const wantsClose = e.target.closest( '.elementor-menu-cart__close-button, .elementor-menu-cart__close, .y-cart-close, [data-close], [aria-label="Close"]' ); if (wantsClose){ e.preventDefault(); closeCart(); } }); // Safety window.addEventListener('pagehide', () => { if (toggle.getAttribute('aria-expanded') === 'true') closeCart(); }); document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'hidden' && toggle.getAttribute('aria-expanded') === 'true') closeCart(); }); }); }); </script> <script> (function () { /* ========================= A) Cart toggle (existing) ========================= */ function enhanceCartToggle(el) { if (!el || el.dataset.a11yDone) return; el.dataset.a11yDone = '1'; el.setAttribute('role', 'button'); el.setAttribute('aria-haspopup', 'dialog'); el.setAttribute('aria-label', 'Open cart'); if (!el.getAttribute('href') || el.getAttribute('href') === '#') { el.setAttribute('tabindex', '0'); } el.addEventListener('keydown', function (e) { if (e.key === ' ' || e.code === 'Space') { e.preventDefault(); el.click(); } }); const svg = el.querySelector('svg'); if (svg) svg.setAttribute('aria-hidden', 'true'); } function scanCartToggle() { document .querySelectorAll('a.elementor-menu-cart__toggle_button') .forEach(enhanceCartToggle); } /* ========================================== B) Gift card balance form a11y enhancements ========================================== */ let uid = 0; function uniqueId(prefix) { uid += 1; return prefix + '-' + uid; } function labelInput(el, text) { if (!el) return; // Prefer aria-label (minimal visual impact). if (!el.hasAttribute('aria-label') && !el.hasAttribute('aria-labelledby')) { el.setAttribute('aria-label', text); } // Ensure it has an id in case some tools prefer for/label linkage. if (!el.id) { el.id = uniqueId('y-giftcard'); } } function enhanceGiftCardForm(root) { // Target common selectors used by gift card balance shortcodes/plugins const inputs = root.querySelectorAll( 'input#wps_giftcard_code, input#gift_card_code, input.wps_gift_balance, input[name="giftcard_code"], input[name="gift_card_code"]' ); inputs.forEach((inp) => labelInput(inp, 'Gift card code')); // Also nudge the submit button (if present) with an aria-label const submit = root.querySelector( 'button[type="submit"], input[type="submit"], .wps_gift_balance_btn, .wps_gc_submit, .wps-btn-check-balance' ); if (submit && !submit.getAttribute('aria-label')) { submit.setAttribute('aria-label', 'Check gift card balance'); } } function scanGiftCardForms() { // Scope to the page; if the form is inside a specific wrapper, you can narrow this. enhanceGiftCardForm(document); } /* ========== Boot + MO ========== */ function scanAll() { scanCartToggle(); scanGiftCardForms(); } if (document.readyState !== 'loading') scanAll(); else document.addEventListener('DOMContentLoaded', scanAll); const mo = new MutationObserver(scanAll); mo.observe(document.documentElement, { childList: true, subtree: true }); })(); </script> <script> document.addEventListener('DOMContentLoaded', function () { // Find all TranslatePress dropdown switchers that behave like a form control document.querySelectorAll('.trp-language-switcher[role="listbox"]').forEach(function(el){ if (!el.hasAttribute('aria-label') && !el.hasAttribute('aria-labelledby')) { // Simple i18n: use <html lang> to choose label var lang = (document.documentElement.getAttribute('lang') || '').toLowerCase(); var label = lang.startsWith('el') ? 'Επιλογέας γλώσσας' : 'Language selector'; el.setAttribute('aria-label', label); } }); }); </script> <script> /* YFEOS — ARIA enhancer for Elementor popup triggers (no opening logic) Targets: - Any element (or its <a>/<button> child) with: [data-elementor-open-popup] OR [data-popup-id] - Plus your known selectors for safety: #js-open-search, .js-open-search, .js-open-search-mobile, #js-open-account, .js-open-account */ (() => { const EXTRA_SELECTORS = '#js-open-search, .js-open-search, .js-open-search-mobile, #js-open-account, .js-open-account'; const BASE = `[data-elementor-open-popup], [data-popup-id], ${EXTRA_SELECTORS}`; const $all = (s, root=document) => Array.from(root.querySelectorAll(s)); function getActionEl(host){ if (!host) return null; if (host.matches('a,button')) return host; const inner = host.querySelector?.('a,button'); return inner || host; } function getPopupIdFrom(elOrHost){ const el = elOrHost; const rawAttr = el.getAttribute('data-popup-id'); if (rawAttr && Number.isFinite(Number(rawAttr))) return String(Number(rawAttr)); const rawDyn = el.getAttribute('data-elementor-open-popup'); if (rawDyn){ try { const obj = JSON.parse(rawDyn); if (Number.isFinite(Number(obj?.id))) return String(Number(obj.id)); } catch {} } return null; } function inferLabel(host){ // Use a sensible default based on known classes/ids const isSearch = host.matches('#js-open-search, .js-open-search, .js-open-search-mobile'); const isAccount = host.matches('#js-open-account, .js-open-account'); if (isSearch) return 'Open search'; if (isAccount) return 'Open account'; // fallback generic return 'Open dialog'; } function decorateIcons(el){ el.querySelectorAll('svg, i, span.icon').forEach(n => { n.setAttribute('aria-hidden', 'true'); if (n.tagName === 'SVG') n.setAttribute('focusable', 'false'); }); } function annotate(host){ const action = getActionEl(host); if (!action) return; // Determine popup id for aria-controls if we can const pid = getPopupIdFrom(action) || getPopupIdFrom(host); const label = action.getAttribute('aria-label') || inferLabel(host); // Accessible name on the actionable element action.setAttribute('aria-label', label); // Button semantics + dialog relationship if (action.tagName !== 'BUTTON' && !action.hasAttribute('role')) { action.setAttribute('role', 'button'); } action.setAttribute('aria-haspopup', 'dialog'); if (pid) { action.setAttribute('aria-controls', 'elementor-popup-modal-' + pid); } // Start collapsed; Elementor will open/close action.setAttribute('aria-expanded', 'false'); // Keep hash links from jumping while staying focusable if (action.tagName === 'A') { const href = (action.getAttribute('href') || '').trim(); if (href === '' || href === '#') action.setAttribute('href', '#'); } else if (!action.hasAttribute('tabindex')) { action.setAttribute('tabindex', '0'); } decorateIcons(action); } function annotateAll(){ $all(BASE).forEach(node => annotate(node)); } // Update aria-expanded when Elementor shows/hides (if jQuery exists) function bindPopupEvents(){ const $w = window.jQuery && window.jQuery(window); if (!$w) return; $w.on('elementor/popup/show', (_evt, id) => { const pid = String(Number(id)); $all(BASE).forEach(node => { const el = getActionEl(node); const nodePid = getPopupIdFrom(el) || getPopupIdFrom(node); if (nodePid && nodePid === pid) el.setAttribute('aria-expanded', 'true'); }); }); $w.on('elementor/popup/hide', (_evt, id) => { const pid = String(Number(id)); $all(BASE).forEach(node => { const el = getActionEl(node); const nodePid = getPopupIdFrom(el) || getPopupIdFrom(node); if (nodePid && nodePid === pid) el.setAttribute('aria-expanded', 'false'); }); }); } const mo = new MutationObserver(() => annotateAll()); mo.observe(document.documentElement, { childList:true, subtree:true }); if (document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', () => { annotateAll(); bindPopupEvents(); }); } else { annotateAll(); bindPopupEvents(); } })(); </script> <script> document.addEventListener('elementor/popup/show', (e) => { if (!e.detail) return; // 🔍 Search Popup (replace 303 with your Search Popup ID) if (e.detail.id === 303) { const searchInput = document.querySelector('.elementor-search-form input'); if (searchInput) { searchInput.focus(); } } // 👤 Account Popup (replace 329 with your Account Popup ID) if (e.detail.id === 329) { const accountInput = document.querySelector('.account-popup input[type="text"], .account-popup input[type="email"]'); if (accountInput) { accountInput.focus(); } } }); </script> </body> </html> <!-- Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/ #!trpst#trp-gettext data-trpgettextoriginal=3182#!trpen#Object Caching 0/510 objects using Redis#!trpst#/trp-gettext#!trpen# #!trpst#trp-gettext data-trpgettextoriginal=3183#!trpen#Page Caching using Disk #!trpst#/trp-gettext#!trpen# Served from: yfeos.com @ 2025-11-02 15:56:18 by W3 Total Cache -->