bin/gla11y | 18 ++++++++++++++++++ sw/source/ui/fldui/flddb.cxx | 9 +++++++++ sw/uiconfig/swriter/ui/flddbpage.ui | 4 ---- vcl/source/window/printdlg.cxx | 4 ++++ vcl/uiconfig/ui/printdialog.ui | 8 ++++---- 5 files changed, 35 insertions(+), 8 deletions(-)
New commits: commit 458c9af2e5002893414c6fce53dd8bd558c4c7d0 Author: Jan-Marek Glogowski <[email protected]> AuthorDate: Thu Sep 27 17:58:55 2018 +0200 Commit: Jan-Marek Glogowski <[email protected]> CommitDate: Fri Sep 28 11:05:46 2018 +0200 gla11y: check element visibility Add warnings for different visibility settings in the "label-for" and "labelled-by" elements. Sine LO doesn't support multiple annotations per accessibility element, we have to switch them manually, if we change the visibility of one element of a pair. Change-Id: I9b3d941248b804b8435591536277677e99b77340 Reviewed-on: https://gerrit.libreoffice.org/61050 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <[email protected]> diff --git a/bin/gla11y b/bin/gla11y index f18e2f48c960..b09d259a8a87 100755 --- a/bin/gla11y +++ b/bin/gla11y @@ -908,6 +908,18 @@ def check_props(filename, tree, root, elm, forward): err(filename, tree, elm, "undeclared-target", forward + " uses undeclared target '%s'" % prop.text) return props +def is_visible(obj): + visible = False + visible_prop = obj.findall("property[@name='visible']") + visible_len = len(visible_prop) + if visible_len: + visible_txt = visible_prop[visible_len - 1].text + if visible_txt.lower() == "true": + visible = True + elif visible_txt.lower() == "false": + visible = False + return visible + def check_rels(filename, tree, root, elm, forward, backward = None): """ Check the relations given by forward @@ -968,6 +980,8 @@ def check_a11y_relation(filename, tree): # Check labelled-by and its dual label-for labelled_by = check_rels(filename, tree, root, obj, "labelled-by", "label-for") + visible = is_visible(obj) + # Should have only one label if len(labelled_by) >= 1: if oid in mnemonic_for_elm: @@ -978,6 +992,10 @@ def check_a11y_relation(filename, tree): if oid in label_for_elm: if len(label_for_elm[oid]) > 1: warn(filename, tree, obj, "duplicate-label-for", "is referenced by multiple label-for " + elms_names_lines(label_for_elm[oid])) + elif len(label_for_elm[oid]) == 1: + paired = label_for_elm[oid][0] + if visible != is_visible(paired): + warn(filename, tree, obj, "visibility-conflict", "visibility conflicts with paired " + paired.attrib.get('id')) if oid in mnemonic_for_elm: if len(mnemonic_for_elm[oid]) > 1: warn(filename, tree, obj, "duplicate-mnemonic", "is referenced by multiple mnemonic_widget " + elms_names_lines(mnemonic_for_elm[oid])) diff --git a/sw/source/ui/fldui/flddb.cxx b/sw/source/ui/fldui/flddb.cxx index 7447a7708c87..3feac5488241 100644 --- a/sw/source/ui/fldui/flddb.cxx +++ b/sw/source/ui/fldui/flddb.cxx @@ -341,6 +341,10 @@ void SwFieldDBPage::TypeHdl( ListBox const * pBox ) m_pNumFormatLB->Show(); m_pFormatLB->Hide(); + m_pNewFormatRB->SetAccessibleRelationLabelFor(m_pNumFormatLB); + m_pNumFormatLB->SetAccessibleRelationLabeledBy(m_pNewFormatRB); + m_pFormatLB->SetAccessibleRelationLabelFor(nullptr); + if (pBox) // type was changed by user m_pDBFormatRB->Check(); @@ -376,6 +380,11 @@ void SwFieldDBPage::TypeHdl( ListBox const * pBox ) m_pNewFormatRB->Check(); m_pNumFormatLB->Hide(); m_pFormatLB->Show(); + + m_pNewFormatRB->SetAccessibleRelationLabelFor(m_pFormatLB); + m_pFormatLB->SetAccessibleRelationLabeledBy(m_pNewFormatRB); + m_pNumFormatLB->SetAccessibleRelationLabelFor(nullptr); + if( IsFieldEdit() ) { for( sal_Int32 nI = m_pFormatLB->GetEntryCount(); nI; ) diff --git a/sw/uiconfig/swriter/ui/flddbpage.ui b/sw/uiconfig/swriter/ui/flddbpage.ui index f1b9b0ae0507..a9b1d65f39ea 100644 --- a/sw/uiconfig/swriter/ui/flddbpage.ui +++ b/sw/uiconfig/swriter/ui/flddbpage.ui @@ -318,7 +318,6 @@ <property name="draw_indicator">True</property> <property name="group">fromdatabasecb</property> <accessibility> - <relation type="label-for" target="format"/> <relation type="label-for" target="numformat"/> </accessibility> </object> @@ -339,9 +338,6 @@ <property name="no_show_all">True</property> <property name="entry_text_column">0</property> <property name="id_column">1</property> - <accessibility> - <relation type="labelled-by" target="userdefinedcb"/> - </accessibility> </object> <packing> <property name="expand">False</property> diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx index 725cba29a8d0..50726365af1e 100644 --- a/vcl/source/window/printdlg.cxx +++ b/vcl/source/window/printdlg.cxx @@ -1252,6 +1252,10 @@ void PrintDialog::setupOptionalUI() maNUpPage.mpPagesBoxTitleTxt->SetText( maNUpPage.mpPagesBtn->GetText() ); maNUpPage.mpPagesBoxTitleTxt->Show(); maNUpPage.mpPagesBtn->Show( false ); + + maNUpPage.mpPagesBoxTitleTxt->SetAccessibleRelationLabelFor(maNUpPage.mpNupPagesBox); + maNUpPage.mpNupPagesBox->SetAccessibleRelationLabeledBy(maNUpPage.mpPagesBoxTitleTxt); + maNUpPage.mpPagesBtn->SetAccessibleRelationLabelFor(nullptr); } // update enable states diff --git a/vcl/uiconfig/ui/printdialog.ui b/vcl/uiconfig/ui/printdialog.ui index 62faa172026d..08e55202e2ba 100644 --- a/vcl/uiconfig/ui/printdialog.ui +++ b/vcl/uiconfig/ui/printdialog.ui @@ -1075,7 +1075,7 @@ <property name="can_focus">False</property> <property name="model">liststore1</property> <accessibility> - <relation type="labelled-by" target="pagespersheettxt"/> + <relation type="labelled-by" target="pagespersheetbtn"/> </accessibility> </object> <packing> @@ -1099,6 +1099,9 @@ <property name="active">True</property> <property name="draw_indicator">True</property> <property name="group">brochure</property> + <accessibility> + <relation type="label-for" target="paperspersheetlb"/> + </accessibility> </object> <packing> <property name="expand">False</property> @@ -1109,9 +1112,6 @@ <child> <object class="GtkLabel" id="pagespersheettxt"> <property name="can_focus">False</property> - <accessibility> - <relation type="label-for" target="paperspersheetlb"/> - </accessibility> </object> <packing> <property name="expand">False</property> _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
