-
-
Notifications
You must be signed in to change notification settings - Fork 283
Description
First of all thank you for the great package. It recognises the html almost perfectly and works so good with semantics.
However we have some issues regarding heading to heading jump on ios after manipulating the html with custom widget.
Steps to Reproduce
- add htmlWidget in a column with 2 other elements and the add a SingleChildScrollable over everything and a navigation bar
- choose heading to heading jump in the voice over mode
- slide down fast until you get to around this text: "legal foundations for the processing of personal data"
- when you do it fast the elements bellow are no longer recognised and it will announce that no more heading exists
I tried with the html from this website and removed the footer and header and some elements to fit it here. you can just get the full HTML from the website
HTML
<!DOCTYPE html>
<html lang="en">
<body id="top" class="standard">
<div id="wrapper">
<div id="stage">
<div class="inside ">
<!-- indexer::stop -->
<nav class="mod_breadcrumb container block" aria-label="Breadcrumb">
<ul>
<li><a href="/en/homepage" title="Engagement Global english">Home</a></li>
<li class="active" aria-current="page">Privacy Policy</li>
</ul>
</nav>
<!-- indexer::continue -->
<div class="mod_article container block stage-container">
<h1 class="content-headline">Privacy Policy</h1>
</div>
</div>
</div>
<div id="container">
<div class="main">
<div class="mod_article standard block" id="article-1004">
<div class="inside container">
<div class="content-text text-intro">
<div class="rte">
<p>We believe it is important to protect your privacy. Please therefore take the time to
read this privacy policy.</p>
</div>
</div>
</div>
</div>
<div class="mod_article standard block" id="article-1005">
<div class="inside container">
<div class="content-text standard">
<div class="rte">
<p>It provides you with information on how we process your personal data. It applies to
all pages accessible at our address engagement-global.de including their sub-pages
and web applications (hereinafter referred to collectively as 'website').
The legal foundations for data processing are contained in the General Data
Protection Regulation (GDPR) and the German Federal Data Protection Act (BDSG).</p>
<p>The provider of this website in the legal sense is Engagement Global <abbr lang="de"
title="gemeinnützige Gesellschaft mit beschränkter Haftung">gGmbH</abbr> –
Service for Development Initiatives, represented by the Management, <abbr lang="de"
title="Doktor">Dr.</abbr> Jens Kreuter and Ingrid Arenz, Friedrich-Ebert-Allee
40, 53113 Bonn, Germany (hereinafter referred to as 'Engagement Global',
'we' or 'us').</p>
<p>Ziar Kabir, lawyer of SCO:CON-SULT <abbr lang="de"
title="Gesellschaft mit beschränkter Haftung">GmbH</abbr>, Hauptstraße 27, 53604
Bad Honnef, Germany, has been appointed Data Protection Officer.</p>
</div>
</div>
<div class="content-text standard">
<h2>Definition of terms</h2>
<div class="rte">
<p>This privacy policy is based on terms used by the European legislator for the
adoption of the General Data Protection Regulation (GDPR). For your information the
terms used are explained below.</p>
<h3>Data subject</h3>
<p>Any identified or identifiable natural person whose personal data are processed by
the controller.</p>
<h3>Processing</h3>
<p>Any operation or set of operations which is performed on personal data or on sets of
personal data, whether or not by automated means, such as collection, recording,
organisation, structuring, storage, adaptation or alteration, retrieval,
consultation, use, disclosure by transmission, dissemination or otherwise making
available, alignment or combination, restriction, erasure or destruction.</p>
<h3>Restriction of processing</h3>
<p>The marking of stored personal data with the aim of limiting their processing in the
future.</p>
<h3>Pseudonymisation</h3>
<p>The processing of personal data in such a manner that the personal data can no longer
be attributed to a specific data subject without the use of additional information,
provided that such additional information is kept separately and is subject to
technical and organisational measures to ensure that the personal data are not
attributed to an identified or identified natural person.</p>
<h3>Controller</h3>
<p>The natural or legal person, public authority, agency or other body which, alone or
jointly with others, determines the purposes and means of the processing of personal
data.</p>
<h3>Processor</h3>
<p>A natural or legal person, public authority, agency or other body which processes
personal data on behalf of the controller.</p>
<h3>Recipient</h3>
<p>A natural or legal person, public authority, agency or another body, to which the
personal data are disclosed, whether a third party or not. However, public
authorities which may receive personal data in the framework of a particular inquiry
in accordance with Union or Member State law shall not be regarded as recipients.
</p>
<h3>Third party</h3>
<p>A natural or legal person, public authority, agency or body other than the data
subject, controller, processor and persons who, under the direct authority of the
controller or processor, are authorised to process personal data.</p>
<h3>Consent</h3>
<p>Consent of the data subject means any freely given, specific, informed and
unambiguous indication of the data subject's wishes by which he or she, by a
statement or by a clear affirmative action, signifies agreement to the processing of
personal data relating to him or her.</p>
</div>
</div>
<div class="content-text text-list">
<h2>Information on data processing</h2>
<div class="rte">
<p>We are glad to supply you with information on the processing of your personal data by
Engagement Global and your rights under data protection law.</p>
<h3>Purpose and scope of the processing of personal data</h3>
<p>Our website users' personal data may only be used to the extent necessary to
secure and operate a functioning website, to enable us to deliver the services we
offer, to optimise our service offering and to fulfil the intended purpose.</p>
<h3>Legal foundations for the processing of personal data</h3>
<p>We process personal data of data subjects on the basis of these standards of
authorisation:</p>
<ul>
<li>Consent (Article 6 paragraph 1 (a) of the GDPR)</li>
<li>Performance of a contract or steps prior to entering into a contract (Article 6
paragraph 1 (b) of the GDPR)</li>
<li>Legal obligation (Article 6 paragraph 1 (c) of the GDPR)</li>
<li>Pursuit of a legitimate interest by us or by a third party, except where said
interests are overridden by the interests or fundamental rights and freedoms of
the data subject (Article 6 paragraph 1 (f) of the GDPR).</li>
</ul>
<h3>Data erasure and personal data retention period</h3>
<p>The personal data of the data subject will automatically be erased or restricted once
the purpose for which they were stored no longer applies. Data may continue to be
retained beyond this time when the data controller is required under European or
national legislation, regulations or other legal instruments to do so. Data may also
be restricted or erased when a retention period set under one of the above named
provisions expires, except where further retention of the data is necessary in order
to conclude or fulfil a contract.</p>
<h3>Recipients of personal data</h3>
<p>In principle the only recipients of data subjects' personal data are the
controller and the processor employed by the controller in accordance with data
protection law. Data may be shared with third parties if the controller is
authorised to do so by a permissive rule or is legally required to do so.</p>
<h3>Transfer of data to third countries</h3>
<p>Should data subjects' personal data be transferred to countries outside the
European Union (EU) or outside the European Economic Area (EEA), this will take
place only in the presence of an adequate level of protection (Article 45 of the
GDPR) or appropriate safeguards (Article 46 of the GDPR) or under the conditions of
Article 49 of the GDPR for derogations for specific situations.</p>
<h3>Existence of automated decision-making</h3>
<p>As a responsible company we do not have automated decision-making or profiling.</p>
</div>
</div>
<div class="content-text standard">
<h2>Hosting</h2>
<div class="rte">
<p>As part of our outsourcing of data processing we commission a professional external
service provider to make our website available. The service provider is required to
comply with the legal regulations on data protection to the same extent as we are,
and guarantee the reliable and secure management of the data associated with our
online services. Data subjects' personal data collected through the website are
stored on the servers of the Hetzner Online <abbr lang="de"
title="Aktiengesellschaft">AG</abbr> company in Gunzenhausen, Germany. The data
are stored separately from other applications. The processor processes personal data
only in accordance with the controller's instructions, and to the extent
necessary in order to meet their obligations to provide services.</p>
</div>
</div>
<div class="content-text text-list">
<h2>Access data</h2>
<div class="rte">
<p>Each time our website is accessed, our system automatically records information from
the accessing computer’s system. The following data are gathered:</p>
<ul>
<li>the browser type and version used</li>
<li>the user's operating system</li>
<li>the user's Internet service provider</li>
<li>the user’s <abbr lang="en" title="Internet Protocol">IP</abbr> address</li>
<li>the data and time of access</li>
<li>websites from which the user's system arrives at our website</li>
<li>websites accessed by the user's system via our website.</li>
</ul>
<p>Access data are processed on the basis of our legitimate interest in transferring the
content of the website and pursuant to Article 6 paragraph 1 (f) of the GPDR.
Temporary processing of the user’s IP address by our system is required in order to
deliver the website to the user’s computer. We may store the data for analytical and
maintenance purposes. In that case, however, the accessing system's IP address
is anonymised. Since these data are absolutely necessary in order to operate the
website, as a user you are not able to object to their processing.</p>
</div>
</div>
<div class="content-text standard">
<h2>Cookies and similar technologies</h2>
<div class="rte">
<p>Our website uses cookies. Cookies are text files generated when the browser views
pages, in order to store data on the browser during and after a website visit.
Unique character strings are then regularly stored in the cookie, by means of which
a server can recognise a browser. Cookies can be stored by the website visited
(first party) or by third parties whose services are embedded in the website
visited.</p>
<p>If a third-party service is embedded in several websites, the third party can store
information on user activities in cookies and track these across several sites. In
the cookie the website domain from which the cookie originates is stored, and access
is restricted to this domain. Cookies are valid either for the duration of a browser
session (session cookies) or until a date contained within the cookie (persistent
cookies).</p>
<p>Expired cookies are no longer loaded by the browser when visiting the site, and
depending on the browser are immediately either deleted or overwritten. You can
configure your browser such that no cookies are stored. However, it may then be that
you are not able to use all the functions of our website in full.</p>
<p>To find out more about your browser's cookie settings click on 'help' in
your browser or use these links:</p>
<p><a href="https://support.google.com/accounts/answer/61416?hl=de" target="_blank"
rel="noopener">Google Chrome</a> <br><a
href="https://support.mozilla.org/de/kb/cookies-loeschen-daten-von-websites-entfernen"
target="_blank" rel="noopener">Mozilla Firefox</a> <br><a
href="https://support.apple.com/kb/PH17191?locale=de_DE&viewlocale=de_DE"
target="_blank" rel="noopener">Safari</a> <br><a
href="https://support.microsoft.com/de-de/help/17442/windows-internet-explorer-delete-manage-cookies"
target="_blank" rel="noopener">Internet Explorer</a> <br><a
href="http://www.opera.com/de/help" target="_blank" rel="noopener">Opera</a></p>
<p>Data may be also kept for the same purposes in your browser's local storage or
local session storage.</p>
<p>When you visit our website the following data may be stored on your device:</p>
</div>
</div>
<div class="content-table standard">
<div class="table-container">
<table>
<thead>
<tr>
<th>Name</th>
<th>Service</th>
<th>Domain</th>
<th>Type</th>
<th>Validity</th>
</tr>
</thead>
<tbody>
<tr>
<td>PHPSESSID</td>
<td>Website</td>
<td>engagement-global.de</td>
<td>First-Party HTTP-Cookie</td>
<td>session</td>
</tr>
<tr>
<td>_ga</td>
<td>Google Analytics</td>
<td>engagement-global.de</td>
<td>First-Party HTTP-Cookie</td>
<td>2 years</td>
</tr>
<tr>
<td>_gid</td>
<td>Google Analytics</td>
<td>engagement-global.de</td>
<td>First-Party HTTP-Cookie</td>
<td>24 hours</td>
</tr>
<tr>
<td>_gat</td>
<td>Google Analytics</td>
<td>engagement-global.de</td>
<td>First-Party HTTP-Cookie</td>
<td>1 minute</td>
</tr>
<tr>
<td>yt-player-bandwith</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Local Storage</td>
<td>permanent</td>
</tr>
<tr>
<td>yt-player-headers-readable</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Local Storage</td>
<td>permanent</td>
</tr>
<tr>
<td>yt-remote-connected-devices</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Local Storage</td>
<td>permanent</td>
</tr>
<tr>
<td>yt-remote-device-id</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Local Storage</td>
<td>permanent</td>
</tr>
<tr>
<td>yt-remote-fast-check-period</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Session Storage</td>
<td>session</td>
</tr>
<tr>
<td>yt-remote-session-app</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Session Storage</td>
<td>session</td>
</tr>
<tr>
<td>yt-remote-session-name</td>
<td>YouTube</td>
<td>youtube-nocookie.com</td>
<td>HTML Session Storage</td>
<td>session</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-text standard">
<h2>Session management</h2>
<div class="rte">
<p>When you visit our website our system automatically stores a session cookie with an
anonymous identifier in your browser (a 'session <abbr lang="en"
title="Identifier">ID</abbr> cookie'). This identifier enables our system to
assign page views to a browser session. This is necessary in order to provide our
services and keep logged in users logged in, due to the stateless Hypertext Transfer
Protocol (HTTP). No personal data are stored in the session ID cookie.</p>
</div>
</div>
<div class="content-text standard">
<h2>Google services</h2>
<div class="rte">
<p>Various services of Google <abbr lang="en"
title="Limited Liability Company">LLC</abbr>, 1600 Amphitheatre Parkway,
Mountain View, <abbr lang="en" title="California">CA</abbr> 94043, USA
('Google') are embedded in our website. To find out more please refer to the
section headed 'Further information' below.</p>
<h3>Google web fonts</h3>
<p>When a user visits our website a connection is established with Google servers in
order to load the required fonts. The visitor's IP address is transmitted to a
Google server in the <abbr lang="en" title="United States of America">USA</abbr>. As
far as we are aware Google does not store the IP address of the accessing device
required for data transmission, or amalgamate it with other Google services.</p>
<p>Our use of Google web fonts is based on a legitimate interest pursuant to Article 6,
paragraph 1 (f) of the GPDR. We use the Google web fonts to present our content
accurately and in a graphically appealing way on all browsers. This also constitutes
our legitimate interest in processing personal data.</p>
<h3>Google Tag Manager</h3>
<p>We use Google Tag Manager to configure and manage other tracking services on which we
provide information in this privacy policy.</p>
<p>When a user visits our website a connection is established with Google servers in
order to load the script required for Google Tag Manager. The visitor's IP
address is transmitted to a Google server in the USA. As far as we are aware Google
does not store the IP address of the accessing device required for data
transmission, or amalgamate it with other Google services. When Google Tag Manager
itself is used no personal data are processed.</p>
<p>The legal foundation for using Google Tag Manager and transferring the IP address is
Article 6 paragraph 1 (f) of the GDPR. We use the Google Tag Manager service to
configure and manage other services we use based on our legitimate interest in order
to analyse and optimise the use of this website. These purposes also constitute our
legitimate interest in processing personal data.</p>
<h3>Google Analytics</h3>
<p>This website uses the web analysis service Google Analytics. When a user visits our
website a connection is established with Google servers in order to load the script
required for Google Analytics. The visitor's IP address is transmitted to a
Google server in the USA. As far as we are aware Google does not store the IP
address of the accessing device required for data transmission, or amalgamate it
with other Google services.</p>
<p>Using Google Analytics means that when you visit our website cookies are stored on
your computer that enable us to analyse how you use our website (see above). As a
rule, the information on your use of this website generated by the cookie are
transferred to a Google server in the USA and stored there. On our behalf Google
will use this information to analyse the use of our website by users, compile
results on website activity, and provide us with further services in connection with
use of the website and Internet use.</p>
<p>This website anonymises IP addresses (a process referred to as 'IP masking').
This means that within member states of the European Union or countries that have
signed the Agreement on the European Economic Area, Google abbreviates user IP
addresses. This abbreviation anonymises your IP address.</p>
<p>The legal foundation for using Google Analytics is Article 6 paragraph 1 (f) of the
GDPR. We task Google LLC to perform these analytical services on the basis of our
interests in analysing and optimising the use of this website. These purposes also
constitute our legitimate interest in processing personal data.</p>
<p>The data are automatically erased on a routine basis. Data whose retention period has
expired are automatically erased once a month.</p>
<p>You can object to the collection of your data by Google Analytics by storing an
opt-out cookie. Opt-out cookies prevent the future collection of your data when you
visit this website. To prevent the collection of your data by Google Analytics, you
must complete the opt-out procedure on all the devices/browsers that you use.</p>
<p><a href="/datenschutz.html#!">Please click on this link to deactivate tracking.</a>
</p>
<p>Please note that your decision applies only to this browser. However, should you
intentionally or unintentionally delete this cookie, your objection to the storage
and analysis will be invalidated. You can renew it via the aforementioned link. You
can also prevent the storage of cookies by adjusting your browser settings
accordingly, or by downloading and installing the relevant browser add-on from
Google.</p>
<h3>YouTube videos</h3>
<p>This website uses plugins from YouTube LLC, 901 Cherry Ave., San Bruno, CA 94066, USA
('YouTube'), a subsidiary of Google. Video content from the platform
youtube.com is shown using inline frames. The controller has no control over the
delivery of the videos or the processing associated therewith.</p>
<p>When you visit one of our pages that embeds YouTube videos your browser connects with
YouTube servers in the USA in order to load the video component/previews. When this
happens the visitor's IP address and technical access data are transferred.</p>
<p>Furthermore, data are stored on the user's device (see above) that enable YouTube
to recognise the browser used, and to aggregate data on the user's behaviour and
recognise video views across several pages. YouTube can recognise that you have
visited our website, possibly store this information in your personal YouTube
account, and use collected data on your user behaviour for its own business
purposes. YouTube videos are embedded on our website in extended data protection
mode. This prevents the storage of cookies on your device.</p>
<p>The legal foundation for using YouTube plugins is Article 6 paragraph 1 (f) of the
GDPR. We aim to provide interested visitors with information on our activities and
services through videos. The service we use provides the necessary storage capacity,
the needed bandwidth and the technical infrastructure for this.</p>
<h3>Google reCAPTCHA</h3>
<p>We use Google's reCAPTCHA service to determine whether a human individual or a
computer is inputting data on our contact or newsletter forms. Google uses the
following data to check whether you are a human user or a computer: IP address of
the terminal used; the website of ours that you are visiting and in which reCAPTCHA
is embedded; data and duration of visit; identification data of the browser used and
type of operating system; Google account, if you are logged into Google; mouse
movements on the reCAPTCHA interfaces, and tasks where you are required to identify
images. The legal foundation for the data processing described is Article 6
paragraph 1 (f) of the GPDR. We have a legitimate interest in this processing in
order to guarantee the security of our website and protect ourselves against
automated input (attacks).</p>
</div>
</div>
<div class="content-text text-list">
<h2>Further information</h2>
<div class="rte">
<p><a href="https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI"
target="_blank" rel="noopener">Google Privacy Shield certificate on the Privacy
Shield Framework website</a></p>
<p><a href="https://www.google.com/analytics/terms/tag-manager/" target="_blank"
rel="noopener">Google Tag Managers Terms of Service</a></p>
<p><a href="https://marketingplatform.google.com/about/analytics/terms/de/"
target="_blank" rel="noopener">Google Analytics Terms of Service</a></p>
<p><a href="https://tools.google.com/dlpage/gaoptout?hl=en" target="_blank"
rel="noopener">More information on the Google Analytics Opt-out Browser
Add-on</a></p>
<p><a href="https://policies.google.com/?hl=de" target="_blank" rel="noopener">Google
Privacy Policy and Terms of Service</a></p>
<p><a href="https://policies.google.com/technologies/retention?hl=de" target="_blank"
rel="noopener">Information on the criteria for retention of collected data</a>
</p>
</div>
</div>
<div class="content-text standard">
<h2>Contact</h2>
<div class="rte">
<p>Our website specifies contact details such as addresses, telephone numbers and email
addresses that enable you to get in touch with us quickly and communicate directly
with us and our designated contact persons. A contact form is also provided on our
website. When you contact us we will process the personal data you share with us,
depending on the means of communication you select. This may include your full name,
your address, the telephone number you use, the email address you use, and other
personal data that you share with us in the course of communication. When you use
the contact form we will also store your IP address as well as the date and time of
submission.</p>
<p>The legal foundation for processing personal data in the course of communication is
Article 6 paragraph 1 (f) of the GDPR. If you contact us with the aim of entering
into a contract, an additional legal foundation for processing your data is Article
6 paragraph 1 (f) of the GDPR.</p>
<p>We process your data solely for purposes of contacting you, communicating with you
and tracking communication that has taken place. When you submit the contact form we
store your IP address for maintenance purposes and to protect against misuse. These
purposes also constitute our legitimate interest in processing your data.</p>
<p>The data are erased or restricted once the purpose for which they were stored no
longer applies. The general provisions on the retention period also apply.</p>
<p>Data subjects may object to the processing of their personal data. To contact us in
this regard please use the specified contact details.</p>
</div>
</div>
<div class="content-text text-list">
<h2>Subscription of press and event information</h2>
<div class="rte">
<p>On our website you can subscribe to press and event information by email. Under an
outsourced data processing arrangement, the CleverReach GmbH & Co. KG company,
Schafjückenweg 2, 26180 Rastede, Germany acts as our service provider for sending
and managing our email notifications.</p>
<p>When you register for press and event information, we collect the following data:</p>
<ul>
<li>title</li>
<li>first (given) name</li>
<li>family name</li>
<li>email address (required)</li>
<li>media/institution</li>
</ul>
<p>These data are used first of all to send you a confirmation email (double opt-in
procedure). You will not be included on the newsletter distribution list until you
reconfirm. The newsletter contains technologies that enable us to see whether a
newsletter has been opened, and how newsletters are used. When you open the
newsletter information is automatically sent to us. This enables us to identify
trends and improve our content. Your data are used exclusively for these purposes
and are not shared with third parties.</p>
<p>When you register for the newsletter we will obtain your consent and draw your
attention to this privacy policy. The legal foundation for processing the data you
input and for analysing your user behaviour is Article 6 paragraph 1 (a) of the
GDPR. You can cancel the subscription or revoke your consent at any time using the
cancel option in the newsletter or by email, without stating reasons.</p>
</div>
</div>
<div class="content-text text-list">
<h2>Registration for events</h2>
<div class="rte">
<p>Interested persons can register for events via our website. For this purpose we
provide a registration form on the event page. What personal data we collect varies
depending on the type of event, and each form requests particular details. The
minimum we require in order to be able to send you a confirmation email (double
opt-in procedure) is your first name, family name and email address. In addition,
your IP address is saved by the system when you send the form. We will use the data
we collect solely for purposes of processing your registration and organising the
event. Your data will automatically be deleted after use, unless a legal retention
period precludes their deletion.</p>
<p>When you register for events we will obtain your consent and draw your attention to
this privacy policy. The legal foundation for processing the data you input is
Article 6 paragraph 1 (a) of the GDPR. You may revoke your consent at any time by
email without stating reasons.</p>
</div>
</div>
<div class="content-text text-list">
<h2>Integration of content from social media platforms</h2>
<div class="rte">
<p>This website integrates content from servers of social media platforms. When you call
up a page on our website where such content is embedded, your browser connects to
the social media provider's server to load the embedded content. In doing so,
your IP address and the page called up is transmitted to the server of the social
media provider. A further processing of personal data is not known to us. On our
website, content can be loaded from the following external sources:</p>
<p><a href="https://external.xx.fbcdn.net/" target="_blank" rel="noopener">Facebook
Content Distribution Network </a><br><a href="https://pbs.twimg.com/"
target="_blank" rel="noopener">Twitter Content Distribution Network</a> <br><a
href="https://farm2.staticflickr.com/" target="_blank" rel="noopener">Flickr
Content Distribution Network</a></p>
<p>In order to protect our legitimate interest in the presentation of appealing content
and to avoid potential copyright conflicts, the content is loaded directly from
servers of the aforementioned providers. The processing of your IP address required
for establishing the connection is carried out for these purposes on the basis of
<abbr lang="en" title="Article">Art.</abbr> 6 <abbr lang="en"
title="Paragraph">Para.</abbr> 1 <abbr lang="en" title="littera">lit.</abbr> f
DSGVO.</p>
</div>
</div>
<div class="content-text text-list">
<h2>Social media plug-ins</h2>
<div class="rte">
<p>On our website we only use links to platforms of social media providers. Some of
these links contain parameters that, depending on the platform, pass information to
use interactive functions. Currently, our website contains interactive links to the
platforms Facebook and Twitter.</p>
<p>When you click on a button labeled "share", your browser connects to servers
at Facebook <abbr lang="en" title="Incorporation">Inc.</abbr>, 1601 S California
Ave, Palo Alto, California 94304, USA ("Facebook").</p>
<p>If you click on a button labeled "tweet", your browser connects to servers at
Twitter Inc., 1355 Market St, Suite 900, San Francisco, California 94103, USA
("Twitter").</p>
<p>Facebook or Twitter will then receive information that you have visited the
appropriate subpage of our website, regardless of whether you are registered with or
logged in to the service provider. If you are logged in with the respective service
provider at the time of access, this information is assigned to your user account
and, if applicable, displayed publicly. Furthermore, the service provider will
process your IP address and may store cookies on your device. We have no influence
on the type and scope of processing of personal data on the service provider's
pages and only link to their offer.</p>
<p>You can find more information about the data protection regulations of the service
providers here:</p>
<p><a href="https://de-de.facebook.com/about/privacy/update" target="_blank"
rel="noopener">Facebook</a> <br><a href="https://twitter.com/de/privacy"
target="_blank" rel="noopener">Twitter</a> <br><a
href="https://www.flickr.com/help/privacy" target="_blank"
rel="noopener">Flickr</a></p>
</div>
</div>
<div class="content-text text-list">
<h2>Rights of data subjects</h2>
<div class="rte">
<p>Data subjects have the following rights vis-à-vis controllers:</p>
<ul>
<li>You can demand information as to what personal data concerning you from what
source have been retained, and for what purpose. You must also be notified if
your data are passed on to third parties. In this case you must be informed of
the identity of the recipient or of the categories of recipient.</li>
<li>If your personal data are incorrect or incomplete, you may demand that they be
rectified or supplemented.</li>
<li>You can object to the processing of your personal data for advertising purposes.
For these purposes your data must then be restricted.</li>
<li>You have the right to restrict processing if: you contest the correctness of the
your personal data for a period that enables the controller to review the
correctness of the personal data; the processing is unlawful and you object to
the erasure of the personal data and instead demand restriction of the use of
the personal data; the controller no longer requires the personal data for
processing purposes, but you do require them in order to establish, exercise or
defend legal claims, or if you have objected to the processing pursuant to
Article 21 paragraph 1 of the GDPR and it has not yet been determined whether
the controller's legitimate grounds override your reasons.</li>
<li>You may demand that your data be erased. This is possible when the legal
foundation for processing your data is lacking or has ceased to apply. It is
also the case when the purpose of the data processing no longer applies either
due to the passage of time or for other reasons. Please note that an erasure may
be overridden by an existing retention period or other legitimate interest of
our company. We would be glad to advise you of this upon request. If we have
made your data public, we are then obliged to notify all recipients that you
have requested the erasure of all links to these data or copies of these
personal data. Should you wish to make use of this right, please send an email
to:</li>
</ul>
<p><a
href="mailto:info@engagement-global.de">info@engagement-global.de</a>
</p>
<ul>
<li>You also have a right to object if your legitimate interest due to a personal
situation overrides our interest in processing. This does not apply if we are
obliged to perform processing due to a legal regulation.</li>
<li>Without prejudice to any other administrative or judicial remedy, you have the
right to complain to a supervisory authority if you take the view that the
processing of your personal data violates privacy.</li>
<li>You have the right to obtain your personal data that you have provided to the
controller in a structured, common and machine-readable format.</li>
</ul>
</div>
</div>
<div class="content-text standard">
<h2>Amendment of this privacy policy</h2>
<div class="rte">
<p>We reserve the right to amend this privacy policy so that it complies at all times
with the current legal requirements, or to reflect changes in our services in the
privacy policy. The new privacy policy will then apply the next time you visit our
site.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/build/app.js"></script>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-N88JQL" height="0" width="0"
style="display:none;visibility:hidden"></iframe></noscript>
<script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = !0; j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f) })(window, document, 'script', 'dataLayer', 'GTM-N88JQL')</script>
<!-- End Google Tag Manager -->
<!-- Matomo -->
<script
type="text/javascript">var _paq = window._paq || []; _paq.push(["setDocumentTitle", document.domain + "/" + document.title]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function () { var u = "//track.engagement-global.de/"; _paq.push(['setTrackerUrl', u + 'matomo.php']); _paq.push(['setSiteId', '1']); var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; g.type = 'text/javascript'; g.async = !0; g.defer = !0; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s) })()</script>
<noscript>
<p><img src="//track.engagement-global.de/matomo.php?idsite=1[&]rec=1" style="border:0;" alt="" /></p>
</noscript>
<!-- End Matomo Code -->
<script type="application/ld+json">
{
"@context": "https:\/\/schema.org",
"@graph": [
{
"@type": "WebPage"
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"item": {
"@id": "\/en\/homepage",
"name": "Home"
},
"position": 1
},
{
"@type": "ListItem",
"item": {
"@id": "en\/privacy-policy",
"name": "Privacy Policy"
},
"position": 2
}
]
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https:\/\/schema.contao.org",
"@graph": [
{
"@type": "Page",
"fePreview": false,
"groups": [],
"noSearch": false,
"pageId": 237,
"protected": false,
"title": "Privacy Policy"
}
]
}
</script>
</body>
</html>`HtmlWidget` configuration
HtmlWidget(
htmlText,
onTapUrl: (url) async => widget.handleLinkClicked(url),
onLoadingBuilder: (context, element, loadingProgress) => CircularProgressIndicator(),
customWidgetBuilder: (element) {
if (element.outerHtml.contains('</h') || element.outerHtml.contains('<strong>')) {
// this part is necessary for correct marking:
if (element.innerHtml.contains('</h') || element.outerHtml.contains('<strong>')) return null;
return Semantics(
header: true, child: HtmlWidget(element.outerHtml));
}
return null;
},
)Tesing environment
[✓] Flutter (Channel stable, 3.29.3, on macOS 15.5 24F74 darwin-arm64, locale en-DE) [1,367ms]
• Flutter version 3.29.3 on channel stable at /Users/xxx/fvm/versions/3.29.3
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ea121f8859 (2 months ago), 2025-04-11 19:10:07 +0000
• Engine revision cf56914b32
• Dart version 3.7.2
• DevTools version 2.42.3
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0-rc4) [2.6s]
• Android SDK at /Users/xxx/Library/Android/sdk
• Platform android-35, build-tools 35.0.0-rc4
• ANDROID_HOME = /Users/xxx/Library/Android/sdk
• ANDROID_SDK_ROOT = /Users/xxx/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
This is the JDK bundled with the latest Android Studio installation on this machine.
To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
• Java version OpenJDK Runtime Environment (build 21.0.6+-13368085-b895.109)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 16.4) [1,456ms]
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 16F6
• CocoaPods version 1.16.2
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome) [12ms]
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 2024.3) [12ms]
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 21.0.6+-13368085-b895.109)
[✓] VS Code (version 1.101.0) [9ms]
• VS Code at /Users/xxx/Desktop/Visual Studio Code.app/Contents
• Flutter extension version 3.112.0
[✓] Connected device (4 available) [6.5s]
• M2101K9G (mobile) • 78638998 • android-arm64 • Android 13 (API 33)
• iPhone Xs (mobile) • 00008020-001905A00C82002E • ios • iOS 18.5 22F76
• macOS (desktop) • macos • darwin-arm64 • macOS 15.5 24F74 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 15.5 24F74 darwin-arm64
! Error: Browsing on the local area network for iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
The device must be opted into Developer Mode to connect wirelessly. (code -27)
[✓] Network resources [258ms]
• All expected network resources are available.
! Doctor found issues in 1 category.
Expected results
we expect the whole html to be recognised and be able to jump of necessary
I also noticed if I avoid this part:
// this part is necessary for correct marking:
if (element.innerHtml.contains('</h') || element.outerHtml.contains('<strong>')) return null;the HTML does not even go to next element and immediately jumps to navigation bar, which is wrong.
it should be able to continue if there is more text beneath
As for suggestion, the HTML widget should be able to handle the titles itself since it's an important part of the accessibility specially in the EU
Actual results
As mentioned in the steps to reproduce when we reach at certain point in text the next heading is not recognised and does not jump down