From 0eb723e125b69d5538dcd52194bbaafe2b7e8c70 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Tue, 9 Oct 2007 02:51:38 -0500 Subject: [PATCH] Accessibility: Use Uploaded File Descriptions The file upload dialog asks for a description of the image or file to be uploaded. Use this as the default alt-text for the image and as a title attribute for a file link. --- app/models/web.rb | 5 +++++ app/views/file/file.rhtml | 4 ++-- lib/url_generator.rb | 23 +++++++++++++---------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/app/models/web.rb b/app/models/web.rb index 59129120..1e1d5585 100644 --- a/app/models/web.rb +++ b/app/models/web.rb @@ -47,6 +47,11 @@ class Web < ActiveRecord::Base WikiFile.find_by_file_name(file_name) != nil end + def description(file_name) + file = WikiFile.find_by_file_name(file_name) + file.description if file + end + def markup read_attribute('markup').to_sym end diff --git a/app/views/file/file.rhtml b/app/views/file/file.rhtml index cbdf0325..37c490b7 100644 --- a/app/views/file/file.rhtml +++ b/app/views/file/file.rhtml @@ -9,7 +9,7 @@ { 'multipart' => true , 'accept-charset' => 'utf-8' }) do %>
<%= hidden_field 'file', 'file_name' %> - +

@@ -18,7 +18,7 @@ <%= link_to :back %> and edit the wiki page that refers to the file.
- +
<%= text_field "file", "description", "size" => 40 %>
diff --git a/lib/url_generator.rb b/lib/url_generator.rb index b5415e63..995742b7 100644 --- a/lib/url_generator.rb +++ b/lib/url_generator.rb @@ -17,15 +17,16 @@ class AbstractUrlGenerator known_page = web.has_page?(name) else known_page = web.has_file?(name) + description = web.description(name) end case link_type when :show page_link(mode, name, text, web.address, known_page) when :file - file_link(mode, name, text, web.address, known_page) + file_link(mode, name, text, web.address, known_page, description) when :pic - pic_link(mode, name, text, web.address, known_page) + pic_link(mode, name, text, web.address, known_page, description) else raise "Unknown link type: #{link_type}" end @@ -37,11 +38,12 @@ class UrlGenerator < AbstractUrlGenerator private - def file_link(mode, name, text, web_address, known_file) + def file_link(mode, name, text, web_address, known_file, description) + title = CGI::escapeHTML(CGI::unescapeHTML( description || text)) case mode when :export if known_file - %{#{text}} + %{#{text}} else %{#{text}} end @@ -49,7 +51,7 @@ class UrlGenerator < AbstractUrlGenerator if known_file href = @controller.url_for :controller => 'file', :web => web_address, :action => 'file', :id => name - %{#{text}} + %{#{text}} else %{#{text}} end @@ -57,7 +59,7 @@ class UrlGenerator < AbstractUrlGenerator href = @controller.url_for :controller => 'file', :web => web_address, :action => 'file', :id => name if known_file - %{#{text}} + %{#{text}} else %{#{text}?} end @@ -93,17 +95,18 @@ class UrlGenerator < AbstractUrlGenerator end end - def pic_link(mode, name, text, web_address, known_pic) + def pic_link(mode, name, text, web_address, known_pic, description) + alt_text = CGI::escapeHTML(CGI::unescapeHTML( description || text)) case mode when :export if known_pic - %{#{text}} + %{#{alt_text}} else %{#{text}} end when :publish if known_pic - %{#{text}} + %{#{alt_text}} else %{#{text}} end @@ -111,7 +114,7 @@ class UrlGenerator < AbstractUrlGenerator href = @controller.url_for :controller => 'file', :web => web_address, :action => 'file', :id => name if known_pic - %{#{text}} + %{#{alt_text}} else %{#{text}?} end