RFR: JDK-8314731 : Add support for the alt attribute in the image type input HTML tag

Andrey Turbanov aturbanov at openjdk.org
Wed Aug 30 09:18:13 UTC 2023


On Thu, 17 Aug 2023 00:16:07 GMT, ScientificWare <duke at openjdk.org> wrote:

> This is referenced in Java Bug Database as
> - [JDK-8314731 : Adds support for the alt attribute in the image type input HTML tag.](https://bugs.java.com/bugdatabase/view_bug?bug_id=8314731)
> 
> This is tracked in JBS as
> - [JDK-8314731 : Add support for the alt attribute in the image type input HTML tag](https://bugs.openjdk.java.net/browse/JDK-8314731)
> 
> According [HTML 3.2 specification](https://www.w3.org/TR/2018/SPSD-html32-20180315/#input)
> 
> `alt` is not an attribute of the `input` element.
> 
> According [HTML 4.01 specifications](https://www.w3.org/TR/html4/interact/forms.html#h-17.4) : 
> 
>> ... For accessibility reasons, authors should provide [alternate text](https://www.w3.org/TR/html4/struct/objects.html#alternate-text) for the image via the [alt](https://www.w3.org/TR/html4/struct/objects.html#adef-alt) attribute. ...
> 
> This feature is not implemented in `FormView.java`.
> 
> ⚠️  ~~This also affects the HTML 32 DTD~~
> 
> ![Screenshot_20230817_025316](https://github.com/openjdk/jdk/assets/19194678/8e580574-d842-4a65-884b-26e33cd12138)
> 
> Left before the patch and right after the patch.
> 
> 
> import java.awt.BorderLayout;
> import java.awt.Dimension;
> import javax.swing.JEditorPane;
> import javax.swing.JFrame;
> import javax.swing.JScrollPane;
> import javax.swing.SwingUtilities;
> import javax.swing.text.Document;
> import javax.swing.text.html.HTMLEditorKit;
> import javax.swing.text.html.StyleSheet;
> 
> public class HTMLAddsSupportAltInputTag {
>   public static void main(String[] args) {
>     new HTMLAddsSupportAltInputTag();
>   }
>   
>   public HTMLAddsSupportAltInputTag() {
>     SwingUtilities.invokeLater(new Runnable(){
>       public void run(){
>         JEditorPane jEditorPane = new JEditorPane();
>         jEditorPane.setEditable(false);
>         JScrollPane scrollPane = new JScrollPane(jEditorPane);
>         HTMLEditorKit kit = new HTMLEditorKit();
>         jEditorPane.setEditorKit(kit);
>         StyleSheet styleSheet = kit.getStyleSheet();
>         styleSheet.addRule("""
>             body {
>                 color: #000;
>                 font-family:times;
>                 margin: 4px;
>             }
>             """);
>         String htmlString = """
>             <html>
>                 <body>
>                     <input type=image name=point src="file:oracle_logo_50x50.jpg" alt="Logo Oracle JPG">
>                     <p>
>                     <input type=image name=point src="file:none_oracle_logo_50x50.jpg" alt="Logo Oracle JPG">
>                     <p>
>                     <input type=image name=point src...

src/java.desktop/share/classes/javax/swing/text/html/FormView.java line 283:

> 281:                 URL srcURL = new URL(base, srcAtt);
> 282:                 ImageIcon icon = new ImageIcon(srcURL);
> 283:                 button  = icon.getImageLoadStatus() == MediaTracker.COMPLETE ? new JButton(icon) : new JButton(altAtt);

Suggestion:

                button = icon.getImageLoadStatus() == MediaTracker.COMPLETE ? new JButton(icon) : new JButton(altAtt);

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15319#discussion_r1309958050


More information about the client-libs-dev mailing list