1. 项目背景与设计初衷
作为一名长期关注无障碍技术开发的工程师,我注意到残障人士在主流社交平台上面临着诸多不便。视力障碍者难以识别图片验证码,听力障碍者无法理解语音内容,肢体障碍者可能无法灵活操作触控界面。这些问题导致残障群体的社交参与度显著低于普通人群。
去年参与某公益组织活动时,一位听障朋友向我展示了她使用常规社交软件的困境——无法参与语音聊天室,视频内容缺乏字幕,甚至连基本的表情包都难以理解其隐喻。这次经历促使我决定将毕业设计聚焦于解决这个社会痛点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与架构设计
2.1 为什么选择Spring Boot
在技术选型阶段,我对比了多种Java框架后选择了Spring Boot,主要基于以下考量:
-
快速迭代:Spring Boot的starter依赖和自动配置特性,让开发者能快速搭建基础框架。通过spring-boot-starter-web、spring-boot-starter-data-jpa等组件,我在3天内就完成了基础架构搭建。
-
微服务友好:考虑到未来可能扩展手语翻译API等独立服务,Spring Cloud的天然兼容性为系统演进预留了空间。
-
社区支持:Spring生态拥有丰富的无障碍相关扩展库,如Spring Accessibility项目提供的WCAG合规组件。
提示:实际开发中使用的是Spring Boot 2.7.18版本,与JDK1.8保持兼容。避免使用3.x版本以免出现依赖冲突。
2.2 数据库设计中的无障碍考量
MySQL表结构设计特别考虑了残障用户的数据特征:
sql复制CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`disability_type` enum('visual','hearing','physical','other') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '残障类型',
`access_preference` json DEFAULT NULL COMMENT '存储用户的界面偏好设置',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
关键设计点:
- 使用utf8mb4字符集支持特殊符号和emoji
- disability_type字段为后续个性化适配提供依据
- access_preference以JSON格式存储用户的字体大小、配色方案等个性化设置
2.3 前端无障碍设计规范
遵循WCAG 2.1 AA标准实现前端界面:
- 所有图片添加alt文本
- 视频内容提供字幕和手语画中画
- 颜色对比度至少达到4.5:
