返回作品集
Kerkini Boat — 无障碍游船、住宿与租车

Kerkini Boat — 无障碍游船、住宿与租车

Kerkini Boat 是塞雷斯州凯尔基尼村的一家家族企业:Spyros Sfetkos 经营着湖上第一艘专为轮椅通行建造的船。甲板平整,登船走与甲板齐平的宽坡道,没有人需要被抬离轮椅,35 个座位中可同时容纳 8 到 10 台轮椅及其陪同者。预订时提前说明,还可提供希腊手语讲解。这家人同时出租一套独立公寓和汽车,所以网站要介绍三项服务,又不能埋没最与众不同的那一项。 希腊语在前、英语在后,是两套文件名与结构完全一致的完整页面,而不是由脚本来回替换的文本——这个网站既写给人看,也写给搜索爬虫和 AI 助手看,因此除了手写的 llms.txt,还附有自动生成的全站全文。没有框架,没有构建步骤,也不向任何第三方发请求:字体和动画库都由本站托管,隐私政策对此写得很明确。动效只是装饰,并以三种独立方式安全降级,因此即使 JavaScript 始终没有加载,页面该说的内容也一样都在。

技术栈

HTML5 CSS3 Vanilla JS GSAP 3 JSON-LD Bilingual EL/EN WCAG 2.2 AA llms.txt Self-hosted fonts SEO

挑战

一个讲无障碍的网站,自己在无障碍这件事上不能含糊。船确实可供轮椅通行;公寓是传统的村屋,并不完全可以——要在同一个网站上把这一点说清楚,又不损害生意,是文案里最难的取舍。三项服务还要争同一个首页,各自来自不同的搜索:湖上的行程、住的地方、车。预订只通过电话和 WhatsApp,没有邮箱也没有表单,所以每个页面都得在没有常规联系漏斗的情况下把下一步说明白。受众也是分开的:希腊本地访客,以及来自国外的观鸟者、摄影师和残障团体——因此两种语言都不能沦为语言切换开关所造成的附属品。

解决方案

希腊语和英语是两套完整页面,文件名与结构一一对应,各自带有 canonical、hreflang 和结构化数据,因此关闭 JavaScript 也能正确阅读。页眉、抽屉式导航和页脚由共用 partials 生成到全部 22 个页面;上线前有一个检查脚本校验链接、资源、替代文字、标题层级、canonical、结构化数据,以及每张图片 150 KB 的上限——没有 CI,这些关卡都在命令行里跑。无障碍是量出来的,不是假设的:22 个页面在两种宽度下共 3,055 个文本节点,零对比度失败,320 到 1920 像素之间没有横向滚动。无障碍声明列出船上提供什么,并明确写出公寓并非完全无障碍;载客量和手语讲解写进了结构化数据;字体和脚本自行托管,任何访客都不会被交给第三方。