CINXE.COM
Monitoring & control of water processes
<!DOCTYPE html> <html dir="ltr" lang="en-US"> <head> <meta charset="utf-8"> <!-- This website is powered by TYPO3 - inspiring people to share! TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL. TYPO3 is copyright 1998-2025 of Kasper Skaarhoj. Extensions are copyright of their respective owners. Information and contribution at https://typo3.org/ --> <title>Monitoring & control of water processes</title> <meta name="generator" content="TYPO3 CMS" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta property="og:image" content="https://filelist.tudelft.nl/_processed_/4/4/csm_satellite-photo-67624_1920_55f85039e8.jpg" /> <meta property="og:image" content="https://www.tudelft.nl/typo3conf/ext/site_tud/Resources/Public/Images/OpenGraph/TUDelft.jpg" /> <meta property="og:site_name" content="TU Delft" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Monitoring & control of water processes" /> <meta name="twitter:card" content="summary" /> <meta name="google-site-verification" content="vShvXo6q-uO9k9SNJyGlW9uV3m6LmjyO00PR-Ts7hYQ" /> <link rel="stylesheet" type="text/css" href="/typo3conf/ext/site_tud/Resources/Public/StyleSheets/dist.style.e19d9d9b36.min.css" media="all"> <script src="/typo3conf/ext/tud_styling/Resources/Public/JavaScript/Vendor/modernizr.min.js"></script> <script src="/typo3temp/assets/js/6d999f1aea.js"></script> <script type="text/javascript"> var _wfl={fonts:[ {family:"roboto", weight: 300}, {family:"roboto", weight: 100}, ],isLoaded:function(){return document.cookie.indexOf("fontsLoaded")>=0},afterLoad:function(){document.documentElement.className+=" fontsLoaded",document.cookie="fontsLoaded=1; path=/"}};!function(){var e;if(_wfl.isLoaded())_wfl.afterLoad();else if(void 0!==document.fonts&&void 0!==window.Promise){document.fonts.onloadingerror=function(){console.error("Font error",arguments)};var o=_wfl.fonts.map(function(e){return e.family});e=document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",e);var n=[];document.fonts.forEach(function(e){o.indexOf(e.family)>=0&&n.push(e.load())}),Promise.all(n).then(_wfl.afterLoad)})}else{var n=document.createElement("script");n.type="text/javascript",n.src= "/typo3conf/ext/tud_styling/Resources/Public/JavaScript/Vendor/asyncfontloader.min.js" ,n.async=!0,e=window.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",e),document.head.appendChild(n)})}}();</script><style> .nav-tab a.is-active { color: white !important; } a.is-active {background-color: #00a6d6;} .paging a.is-active {color:white; background-color: #BABABA; border-color: #BABABA;} .tab--red a.is-active {background-color: #E21A1A;} .tab--green a.is-active {background-color: #A5CA1A;} .tab--black a.is-active {background-color: #222;} .tab--white a.is-active {background-color: #fff; color:#000;} .tab--blue_lighter a.is-active {background-color: #D9F0F6;} .tab--blue_light a.is-active {background-color: #6EBBD5;} .tab--blue_dark a.is-active {background-color: #1E6188;} .tab--teal a.is-active {background-color: #008891;} .tab--yellow a.is-active {background-color: #FFC400;} .tab--orange a.is-active {background-color: #E64616;} .tab--purple a.is-active {background-color: #1C1C73;} .tab--purple_light a.is-active {background-color: #6D177F;} .tab--grey_dark a.is-active {background-color: #505050;} .tab--grey a.is-active {background-color: #9B9B9B;} .tab--grey_medium a.is-active {background-color: #BABABA;} .tab--grey_light a.is-active {background-color: #E7E7E7; color:#000;} .tab--pink a.is-active {background-color: #DB028C;} .nav-tab { font-family: 'Roboto Slab', Roboto; } .nav-tab a { padding: .5rem .5rem 0.3rem; } .nav-tab~* { border: 0; } </style> <style> /* no-padding fix */ .grid--noPaddingBottom) > * {padding-bottom: 0.1rem;} /* .contrast .nav-inline .horizontalTiny overflow fix */ .contrast .nav-inpage .card--horizontalTiny {overflow-y: hidden !important;} /* .i-search fix */ /* .nav-main .i-search span {display: initial;} */ /* flexbox referenties fix */ .row--equalHeightContentElements > div > .frame-type-shortcut { flex-grow: 1; display: inherit; } /* linkkleur in zwarte magazine nav */ .bg-black.magazine-navigation a {color:white;} /* contrast patch voor dynamic header */ /* .contrast .dynamicHeader-slideLink { background-color: #000d; border-radius: 3px; padding-left: 5px; } .contrast .dynamicHeader-slideTitle, .contrast .dynamicHeader-slideDescription { color: white; } */ /* Twitter / X icon */ i-twitter-after::after, .i-twitter::before { content: ""; width: 22px; height: 22px; } /* white ghost button text on hover fix */ .btn--ghost:hover.btn--white:hover {color: black !important;} .contrast .btn--ghost:hover.btn--white:hover {color: white !important;} /* Grid Card background fix */ .grid-background--black .card__img + .card__content {color:black;} .grid-background--black .label {color:#999;} /* Transparent topnav fixes */ .bg-transparent .nav-main__mainitem>a {text-shadow: 0px 0px 3px #888;} .bg-transparent .btn--languageSwitch:after, .bg-transparent .i-search:after {box-shadow: 0 0 2px #888, 0 0 1px #888 inset;} .bg-transparent .icon-languageSwitch, .bg-transparent .btn--icon:before {filter: drop-shadow(0px 0px 4px lightgrey);} .carousel .btn--round, .carousel .slick-arrow {filter: drop-shadow(0px 0px 3px #888);} /* Accordion title fix */ .accordion__title:before {font-size: .7rem;padding: .4rem;} /* Card text size reduction */ .frame-type-lookup_results .card__content:not(h3){font-size: .9rem;} .user-content h3 {margin-top:initial;} /* Blockquote edits*/ .frame-type-sitetud_quote>div{clear:both;} /* blockquote {float:none; padding-top: .5em; padding-bottom: 0;} */ /* disabled on 29-1-2024 */ blockquote cite {margin-top: 0rem; margin-bottom: 10px;} blockquote img {margin-top: -10px;} img + cite {margin-top: 2.5rem;margin-bottom: 2.5em} blockquote.quote-title-size--large img {margin-top:-30px;} blockquote.quote-title-size--medium img + cite {margin-bottom: 3em;} blockquote.quote-title-size--medium p {line-height:1.5;} /* Fix of header slider loading issues */ /*.poster {display:none;} .poster.is-loaded {display:block;} .headerBanner-content {display:initial;}*/ /* Form fixes */ .tx-powermail .checkbox, .tx-powermail .radio {display:block !important;} form {max-width: 100%;} /* blauwe link in cookiemelding */ .cookieNotice a {color: #00a6d6 ;} .cookieNotice .statement_expand:hover {color: #0066a2; text-decoration: underline dotted;} /* Huisstijlfixes */ button.accordion__button {font-family:'Roboto Slab';} .accordion__title {font-family:'Roboto Slab';} /* override align-justify in text-elements (WCAG) */ .frame-type-text .align-justify , p.align-justify {text-align: initial;} /* Spotler form layout */ .mpFormTable, .mpFormTable table {width:100%;} .mpFormLabel {width:30%;} .mpFormField {width:70%;} .mpFormTable .sublabel {font-size: .7em; font-style: italic;} /* .submitCellSpacer {display:none;} */ .mpFormTable li {list-style: none;} .mpFormTable ul {padding-inline-start: 0;} .mpMultipleLabel {margin-left:10px;} /* aside column fix on mobiles */ @media only screen and (max-width: 1024px) { .u-flex {flex-direction: column;} .u-flex.js-contrastChanger {flex-direction: initial;} } /* .accordion padding */ .accordion .grid > * {padding-bottom: initial;} /* magazine styling .bg-white.magazine-navigation .magazine-navigation-logoLink.btn--icon::after {border: 1px solid #222;} .bg-black.magazine-navigation a {color: #fff;} .bg-transparent.magazine-navigation {background: linear-gradient(#fffb 10%, #00a6d675);} .bg-transparent.magazine-navigation .magazine-navigation-logoLink.btn--icon::after {border: 1px solid #00a6d6;} .bg-transparent.magazine-navigation a {color: #00a6d6;} @media only screen and (max-width: 25.2em) {.magazine-navigation {bottom: 7.5rem;}} .nav-overlay.nav-overlay-magazine.is-active {background-color: #0c2340e8; padding:4rem; left:15vw; right:15vw; top:10vh; bottom:20vh} */ /* show-for-xlarge on chrome */ @media screen and (min-width:79.9375em) and (max-width:80em) { .show-for-xlarge { display:initial !important; } } /* zwart font voor witte buttons */ .btn--white {color: #222;} @media print { .nav-bottom {display: none;} } /* border-radius dynamic-header blocks */ .dynamicHeader-block {border-radius: 3px;} /* border-radius fix for header */ .dynamicHeader-slideGradient {border-radius: initial;} /* icons on popup menu */ /* @media only screen and (max-width:350px) { .nav-overlay__container .frame-type-sitetud_socialmedialinks .list-inline { --column-amount: 4; display: grid; grid-template-columns: repeat(var( --column-amount), 0fr); grid-gap: 0; place-items: center; margin: 0; justify-content: center; padding-top: 3em; }} @media only screen and (min-width:350px) and (max-width: 450px){ .nav-overlay__container .frame-type-sitetud_socialmedialinks .list-inline { --column-amount: 6; display: grid; grid-template-columns: repeat(var( --column-amount), 0fr); grid-gap: 0; place-items: center; margin: 0; justify-content: center; padding-top: 3em; }} @media only screen and (min-width:450px){ .nav-overlay__container .frame-type-sitetud_socialmedialinks .list-inline { padding-top:3em; } } */ /* adjusting footernav on mobile */ @media only screen and (max-width:405px) { .nav-bottom .logo {width: 100%; position: relative; display: grid; justify-content: center; padding-bottom: 0.3em; border-right: initial;} .nav-bottom .logo.left { border-bottom: 1px solid #fff; } } .contrast .dynamicHeader-block--blue h3, .contrast .dynamicHeader-block--blue p, .contrast .dynamicHeader-block--blue p .linepix {color: #fff;} .contrast .dynamicHeader-block--blue {background-color : #0C2340; color:#fff;} /* WCAG fix footer */ .pageFooter p a {display: inline-block;} /* WCAG fix voor bullet navigation */ .contrast .content-slider__bullet, .contrast .slick-dots button { width: 24px; height: 24px; margin: 0 5px; } .contrast .content-slider__bullet--active {background-color:#505050} .contrast .content-slider__bullet--active:hover {background-color:#222} /* WCAG fix voor witte social buttons */ .contrast .frame-type-sitetud_socialmedialinks .btn--icon {filter: invert(1);} </style> <style> .profile a:not(.btn--icon) {color: #00a6d6;} .profile {color:#222;} /* alle contactblokken met 2 regels voor de naam */ .profile .box h3 {min-height:54.6px;} </style> <script type="text/javascript">var cookieNoticeConfig = cookieNoticeConfig || {};cookieNoticeConfig.flags = {};cookieNoticeConfig.flags.EXTERNAL = 3;cookieNoticeConfig.flags.ANALYTICAL = 50;cookieNoticeConfig.labels = {statement_short: 'This%20website%20uses%20cookies.%20By%20clicking%20%22accept%22%20you%20give%20your%20permission%20to%20this%20website%20to%20use%20cookies.',statement_detail: 'Delft%20University%20of%20Technology%20collects%20visitor%20information%20to%20optimize%20the%20website%2C%20thereby%20further%20improving%20its%20service%20provision.%20This%20information%20is%20not%20linked%20to%20individuals%20and%20cannot%20be%20used%20to%20for%20unsolicited%2Funwanted%20telemarketing%20or%20e-mails.%3Cbr%20%2F%3E%3Cbr%20%2F%3E%20Additionally%2C%20Delft%20University%20of%20Technology%20may%20use%20external%20content%20to%20enrich%20user%20experiences%3B%20this%20content%20may%20contain%20third%20party%20cookies%2C%20from%20f.e.%20social%20media%20platforms.%20Without%20your%20consent%2C%20we%20will%20obscure%20these%20features.',statement_expand: 'What%20are%20cookies%3F',agree: 'Accept',link_policy: 'More%20information%20regarding%20your%20privacy%20and%20cookies%20is%20available%20in%20our%20policy%20statement.',disagree: 'Deny'};cookieNoticeConfig.hitsBeforeImplicitConsent =-1;cookieNoticeConfig.cookiePolicyDetailPage = '/en/cookie-policy';cookieNoticeConfig.consentChangeCallbacks = [];cookieNoticeConfig.showDisagreeButton =true;cookieNoticeConfig.expiresInMonths =6;cookieNoticeConfig.defaultCookieLevel =1;cookieNoticeConfig.consentedCookieName = '__cookieNotice_consent';cookieNoticeConfig.hitCountCookieName = '__cookieNotice_hit';</script><script type="text/javascript">var tx_solr_suggestUrl = '/?eID=tx_solr_suggest&id=20038';</script><script type="text/javascript"> (function () { if (document.cookie.indexOf("contrast") >= 0) { document.documentElement.className += " contrast"; } }());</script><link rel="apple-touch-icon" sizes="57x57" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/typo3conf/ext/tud_styling/Resources/Public/img/apple-touch-icon-180x180.png"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="/typo3conf/ext/tud_styling/Resources/Public/img/manifest.json"> <link rel="mask-icon" href="/typo3conf/ext/tud_styling/Resources/Public/img/safari-pinned-tab.svg" color="#5bbad5"> <link rel="shortcut icon" href="/typo3conf/ext/tud_styling/Resources/Public/img/favicon.ico"> <meta name="msapplication-TileColor" content="#2d89ef"> <meta name="msapplication-TileImage" content="/typo3conf/ext/tud_styling/Resources/Public/img/mstile-144x144.png"> <meta name="msapplication-config" content="/typo3conf/ext/tud_styling/Resources/Public/img/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> <link rel="canonical" href="https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes"/> <link rel="alternate" hreflang="nl-NL" href="https://www.tudelft.nl/citg/over-faculteit/afdelingen/watermanagement/onderzoek/monitoring-control-of-water-processes"/> <link rel="alternate" hreflang="en-US" href="https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes"/> <link rel="alternate" hreflang="x-default" href="https://www.tudelft.nl/citg/over-faculteit/afdelingen/watermanagement/onderzoek/monitoring-control-of-water-processes"/> <!-- This site is optimized with the Yoast SEO for TYPO3 plugin - https://yoast.com/typo3-extensions-seo/ --> <script type="application/ld+json">[{"@context":"https:\/\/www.schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/","name":"Delft University of Technology"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/faculties-services","name":"Faculties & Services"}},{"@type":"ListItem","position":3,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg","name":"Civil Engineering and Geosciences"}},{"@type":"ListItem","position":4,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg\/about-faculty","name":"About the faculty"}},{"@type":"ListItem","position":5,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg\/about-faculty\/departments","name":"Departments"}},{"@type":"ListItem","position":6,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg\/about-faculty\/departments\/watermanagement","name":"Water Management"}},{"@type":"ListItem","position":7,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg\/about-faculty\/departments\/watermanagement\/research","name":"Research"}},{"@type":"ListItem","position":8,"item":{"@id":"https:\/\/www.tudelft.nl\/en\/ceg\/about-faculty\/departments\/watermanagement\/research\/monitoring-control-of-water-processes","name":"Monitoring & control of water processes"}}]}]</script> </head> <body class="page-20038"> <script type="text/javascript"> /*<![CDATA[*/ cookieNoticeConfig.consentChangeCallbacks.push({ type: cookieNoticeConfig.flags.ANALYTICAL, callback: function () { (function() { var sz = document.createElement('script'); sz.type = 'text/javascript'; sz.async = true; sz.src = '//siteimproveanalytics.com/js/siteanalyze_6005654.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sz, s); })(); } }); /*]]>*/ </script><script id="powermail_conditions_container" data-condition-uri="https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes?type=3132"></script><style> .card--no_image.card--red,.btn--ghost.btn--red:hover, .highlight--vertical .highlight--red, .highlight--red::after, .hoverableBlock--red::after,[class*="--red"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--red, .content-slider--red, .card--red, .accordion__title--red, .nav-inpage--red) {background-color: #E03C31;} .card--no_image.card--green, .btn--ghost.btn--green:hover, .highlight--vertical .highlight--green, .highlight--green::after, .hoverableBlock--green::after,[class*="--green"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--green, .content-slider--green, .card--green, .accordion__title--green, .nav-inpage--green ) {background-color: #6CC24A;} .card--no_image.card--blue_dark,.btn--ghost.btn--blue_dark:hover, .highlight--vertical .highlight--blue_dark, .highlight--blue_dark::after, .hoverableBlock--blue_dark::after,[class*="--blue_dark"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--blue_dark, .content-slider--blue_dark, .card--blue_dark, .accordion__title--blue_dark, .nav-inpage--blue_dark) {background-color: #0C2340;} .card--no_image.card--yellow, .btn--ghost.btn--yellow:hover, .highlight--vertical .highlight--yellow, .highlight--yellow::after, .hoverableBlock--yellow::after,[class*="--yellow"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--yellow, .content-slider--yellow, .card--yellow, .accordion__title--yellow, .nav-inpage--yellow) {background-color: #FFB81C;} .card--no_image.card--orange, .btn--ghost.btn--orange:hover, .highlight--vertical .highlight--orange, .highlight--orange::after, .hoverableBlock--orange::after,[class*="--orange"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--orange, .content-slider--orange, .card--orange, .accordion__title--orange, .nav-inpage--orange), .btn:not(.btn--ghost).btn--orange {background-color: #EC6842;} .card--no_image.card--purple, .btn--ghost.btn--purple:hover, .highlight--vertical .highlight--purple, .highlight--purple::after, .hoverableBlock--purple::after,[class*="--purple"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--purple, , .content-slider--purple, .card--purple, .accordion__title--purple, .nav-inpage--purple) {background-color: #6F1D77;} .card--no_image.card--purple_light, .btn--ghost.btn--purple_light:hover, .highlight--vertical .highlight--purple_light, .highlight--purple_light::after, .hoverableBlock--purple_light::after, [class*="--purple_light"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--purple_light, .content-slider--purple_light, .card--purple_light, .accordion__title--purple_light, .nav-inpage--purple_light) {background-color: #6F1D77;} .card--no_image.card--pink, .btn--ghost.btn--pink:hover, .highlight--vertical .highlight--pink, .highlight--pink::after, .hoverableBlock--pink::after, [class*="--pink"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--pink, .content-slider--pink, .card--pink, .accordion__title--pink, .nav-inpage--pink ) {background-color: #EF60A3;} .card--no_image.card--teal, .btn--ghost.btn--teal:hover, .highlight--vertical .highlight--teal, .highlight--teal::after, .hoverableBlock--teal::after, [class*="--teal"]:not([class*="dynamicHeader"], [class*="searchForm"], [class*="hoverableBlock"], [class*="highlight"], .btn--ghost, .btn:hover, .moreLink, .nav-inpage, .ce-div, .navColored--teal, .content-slider--teal, .card--teal, .accordion__title--teal, .nav-inpage--teal) {background-color: #00B8C8;} .btn:not(.btn--ghost).btn--orange:hover {background-color: #222;} .btn--ghost.btn--red, .notice--red .btn:not(.btn--ghost), .fact [class*="-red"] {color:#E03C31;} .btn--ghost.btn--green, .notice--green .btn:not(.btn--ghost), .fact [class*="-green"] {color:#6CC24A;} .btn--ghost.btn--blue_dark, .notice--blue_dark .btn:not(.btn--ghost), .fact [class*="-blue_dark"] {color:#0C2340;} .btn--ghost.btn--yellow, .notice--yellow .btn:not(.btn--ghost), .fact [class*="-yellow"] {color:#FFB81C;} .btn--ghost.btn--orange, .notice--orange .btn:not(.btn--ghost), .fact [class*="-orange"] {color:#EC6842;} .btn--ghost.btn--purple, .notice--purple .btn:not(.btn--ghost), .fact [class*="-purple"] {color:#6F1D77;} .btn--ghost.btn--purple_light, .notice--purple_light .btn:not(.btn--ghost), .fact [class*="-purple_light"] {color:#6F1D77;} .btn--ghost.btn--pink, .notice--pink .btn:not(.btn--ghost), .fact [class*="-pink"] {color:#EF60A3;} .btn--ghost.btn--teal, .notice--teal .btn:not(.btn--ghost), .fact [class*="-teal"] {color:#00B8C8;} .dynamicHeader-block--red {background-color: rgba(224, 60, 49, var(--block-opacity))} .dynamicHeader-block--green {background-color: rgba(108, 194, 74, var(--block-opacity))} .dynamicHeader-block--blue_dark {background-color: rgba(12, 35, 64, var(--block-opacity))} .dynamicHeader-block--yellow {background-color: rgba(255, 184, 28, var(--block-opacity))} .dynamicHeader-block--orange {background-color: rgba(237, 104, 66, var(--block-opacity))} .dynamicHeader-block--purple {background-color: rgba(111, 29, 119, var(--block-opacity))} .dynamicHeader-block--purple_light {background-color: rgba(111, 29, 119, var(--block-opacity))} .dynamicHeader-block--pink {background-color: rgba(239, 96, 163, var(--block-opacity))} .dynamicHeader-block--teal {background-color: rgba(0, 184, 200, var(--block-opacity))} .card--red h3 {color:#E03C31;} .card--red.card--horizontalTiny .card__content::after, .card--red::after, .card--red.card--no_image[href]::after {background-color:#E03C31;} .card--green h3 {color:#6CC24A;} .card--green.card--horizontalTiny .card__content::after, .card--green::after, .card--green.card--no_image[href]::after {background-color:#6CC24A;} .card--blue_dark h3 {color:#0C2340;} .card--blue_dark.card--horizontalTiny .card__content::after, .card--blue_dark::after, .card--blue_dark.card--no_image[href]::after {background-color:#0C2340;} .card--yellow h3 {color:#FFB81C;} .card--yellow.card--horizontalTiny .card__content::after, .card--yellow::after, .card--yellow.card--no_image[href]::after {background-color:#FFB81C;} .card--orange h3 {color:#EC6842;} .card--orange.card--horizontalTiny .card__content::after, .card--orange::after, .card--orange.card--no_image[href]::after {background-color:#EC6842;} .card--purple h3 {color:#6F1D77;} .card--purple.card--horizontalTiny .card__content::after, .card--purple::after, .card--purple.card--no_image[href]::after {background-color:#6F1D77;} .card--purple_light h3 {color:#6F1D77;} .card--purple_light.card--horizontalTiny .card__content::after, .card--purple_light::after, .card--purple_light.card--no_image[href]::after {background-color:#6F1D77;} .card--pink h3 {color:#EF60A3;} .card--pink.card--horizontalTiny .card__content::after, .card--pink::after, .card--pink.card--no_image[href]::after {background-color:#EF60A3;} .card--teal h3 {color:#00B8C8;} .card--teal.card--horizontalTiny .card__content::after, .card--teal::after, .card--teal.card--no_image[href]::after {background-color:#00B8C8;} .divider--red, .nav-inpage.nav-inpage--red {border-color:#E03C31;} .divider--green, .nav-inpage.nav-inpage--green {border-color:#6CC24A;} .divider--blue_dark, .nav-inpage.nav-inpage--blue_dark {border-color:#0C2340;} .divider--yellow, .nav-inpage.nav-inpage--yellow {border-color:#FFB81C;} .divider--orange, .nav-inpage.nav-inpage--orange {border-color:#EC6842;} .divider--purple_light, .nav-inpage.nav-inpage--purple_light {border-color:#6F1D77;} .divider--purple, .nav-inpage.nav-inpage--purple {border-color:#6F1D77;} .divider--pink, .nav-inpage.nav-inpage--pink {border-color:#EF60A3;} .divider--teal, .nav-inpage.nav-inpage--teal {border-color:#00B8C8;} .tab--blue_dark a {color: white;} </style> <a href="#" class="skiplink btn btn--single align-center btn--grey_dark u-flex js-contrastChanger"> <svg role="presentation" class="icon-contrast"> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/contrast-icon.svg#contrast-icon"></use> </svg> <span class="js-contrastChanger-label" data-highcontrasttext="Activate high contrast" data-normalcontrasttext="Activate normal contrast"> Activate high contrast </span> </a> <a href="#main" class="skiplink btn btn--single align-center btn--grey_dark"> To main content </a> <!-- Add logo as early as possible in HTML so placeholder renders correctly --> <svg class="hidden" xmlns="http://www.w3.org/2000/svg"> <symbol id="logo" viewBox="0 0 105 41"> <path fill="currentColor" fill-rule="evenodd" d="M30.5 36.73c2.62 0 4.03-1.74 4.03-4.18V20.12h5.56v12.71c-.06 5.6-4.53 7.8-9.59 7.8-5.05 0-9.53-2.2-9.58-7.8v-12.7h5.55v12.42c0 2.44 1.42 4.18 4.03 4.18M77.18 33.73v-1.31c0-3.87-2.2-6.6-6.15-6.6-4.41 0-6.47 3.42-6.47 7.52 0 4.12 1.78 7.29 6.25 7.29 3.34 0 5.78-1.59 6.2-4.76h-2.78c-.3 2.03-1.33 2.84-3.39 2.84-2.7 0-3.59-2.4-3.59-4.98h9.93zm-9.87-1.84c.02-2.18 1.34-4.15 3.53-4.15 2.55 0 3.55 1.76 3.55 4.15h-7.08zM80.37 20.12h2.65v20.1h-2.65v-20.1zM6.53 40.21h5.55V24.02h6.22v-3.9H.3v3.9h6.23v16.2M19.87 10.34c-1.35.42-2.75.08-2.75-1.73 0-2.77 6.49-5.09 7.4-7.5.21-.61.23-1.1-.06-1.1-.2.02-.04.32-.5.78-2.69 2.69-7.19 2.68-10.65 4.24-2.26 1.02-8.9 4.15-7.37 11.13.07.33.27 1.44.47 1.44.24 0 .23-.66.23-1.46-.05-4.16 4.86-5.32 6.46-8.04.2-.32.52-.77.6-.56.04.1.01.25-.05.54-.5 2.23-2.83 3.66-2.17 5.26.85 2.07 3.32.53 4.08-.8.2-.37.32-.6.46-.56.1.04.1.46.03.84-.4 2.4-.96 3.75-2.71 5.12-.56.43-1.44.52-1.33.86.03.09.41.08.71.05 4.68-.3 8.59-5.82 9.62-9.43.11-.25.14-.5.03-.58-.14-.1-.35.14-.56.33-.53.47-1.26.96-1.94 1.17M91.29 40.21V28.08h3.22v-1.84h-3.22V24c0-1.62.78-1.9 2.28-1.9.44 0 .89.06 1.33.09v-2.2a8.59 8.59 0 00-1.89-.28c-2.5 0-4.36 1.26-4.36 3.93v2.61h-2.72v1.84h2.72v12.13h2.64M96.03 26.24v1.84h2.38v8.9c0 1.86.03 3.65 3.95 3.65.61 0 1.18-.06 1.8-.17v-2.03c-.42.1-.96.17-1.38.17-.95 0-1.72-.48-1.72-1.48v-9.04h3.22v-1.84h-3.22v-3.8l-2.65.83v2.98h-2.38M48.43 22.51h4.1c4.64 0 6.56 3.5 6.56 7.66 0 4.15-1.92 7.65-6.56 7.65h-4.1v-15.3zm-2.79 17.7h6.9c8.57 0 9.47-7.27 9.47-10.04 0-2.77-.9-10.05-9.48-10.05h-6.89v20.1z"/> </symbol> </svg> <nav class="bg-blue nav-top"> <div class="container no-spacing"> <a class="logo left" href="/en/"> <svg focusable="false" class="logo-tudelft--top" role="img"> <use xlink:href="#logo"></use> </svg> <span class="text-hide">Home of TU Delft</span> </a> <div class="right"> <div class="nav-main"> <ul><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement">Home</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/research">Research</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/waterlab">WaterLab</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/urban-water-infrastructure">Urban Water Infrastructure</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/observation-modelling-of-water-resources">Observation & modelling of water resources</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/water-quality-treatment-reclamation">Water quality, treatment & reclamation</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes">Monitoring & control of water processes</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/research-projects">Research projects</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/stories-of-science">Stories of Science</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/paving-the-way-for-sustainable-water-solutions-in-european-cities">Paving the Way for Sustainable Water Solutions in European Cities</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/study">Study</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/bachelor">Bachelor</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/master">Master</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/minor">Minor</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/msc-research-water-resources">MSc research Water Resources</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/msc-research-sanitary-engineering">MSc research Sanitary Engineering</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/available-msc-projects-water-management">Available MSc projects Water Management</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/fieldwork">Fieldwork</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/procedures-and-checklists">Procedures and checklists</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/online-professional-education">Online Professional Education</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/marc-van-eekeren-reisfonds">Marc van Eekeren Reisfonds</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/staff">Staff</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/professors">Professors</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/associate-professors">Associate professors</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/assistant-professors-lecturers">Assistant professors & lecturers</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/postdocs">Postdocs</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/phd-candidate">PhD candidate</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/researcher">Researcher</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/support-staff">Support staff</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/emeritus-guest-researchers-visitors">Emeritus, guest researchers & visitors</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/current">Current</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/news">News</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/agenda">Agenda</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/facts-figures-1">Facts & figures</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/archive">Archive</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/drinking-water-book">Drinking Water book</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/contact">Contact</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/vacancies">Vacancies</a></li></ul> <a href="/citg/over-faculteit/afdelingen/watermanagement/onderzoek/monitoring-control-of-water-processes" title="Schakel over naar de Nederlandse taal" class="btn--icon btn--languageSwitch" lang="nl"> <div class="icon-languageSwitch icon-languageSwitch--en"></div> </a> <button data-target=".nav-search" class="button-reset btn--icon i-search js-modal"> <span class="text-hide">Search</span> </button> </div> </div> </div> </nav> <nav class="nav-overlay"> <div class="container no-spacing"> <ul class="list-reset nav-overlay__container"><li id="nav-overlay__mainitem--19684" data-priority="0"><div class="nav-overlay__mainitem"><a href="/en/ceg/about-faculty/departments/watermanagement">Home</a></div></li><li id="nav-overlay__mainitem--18243" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research">Research</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/waterlab" id="nav-overlay__subitem--33645" class="nav-overlay__subitem">WaterLab</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/urban-water-infrastructure" id="nav-overlay__subitem--20035" class="nav-overlay__subitem">Urban Water Infrastructure</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/observation-modelling-of-water-resources" id="nav-overlay__subitem--20036" class="nav-overlay__subitem">Observation & modelling of water resources</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/water-quality-treatment-reclamation" id="nav-overlay__subitem--20037" class="nav-overlay__subitem">Water quality, treatment & reclamation</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes" id="nav-overlay__subitem--20038" class="nav-overlay__subitem">Monitoring & control of water processes</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/research-projects" id="nav-overlay__subitem--44654" class="nav-overlay__subitem">Research projects</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/stories-of-science" id="nav-overlay__subitem--16049" class="nav-overlay__subitem">Stories of Science</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/research/paving-the-way-for-sustainable-water-solutions-in-european-cities" id="nav-overlay__subitem--184550" class="nav-overlay__subitem">Paving the Way for Sustainable Water Solutions in European Cities</a></li></ul></li><li id="nav-overlay__mainitem--152627" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study">Study</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/bachelor" id="nav-overlay__subitem--153100" class="nav-overlay__subitem">Bachelor</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/master" id="nav-overlay__subitem--153104" class="nav-overlay__subitem">Master</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/minor" id="nav-overlay__subitem--154559" class="nav-overlay__subitem">Minor</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/msc-research-water-resources" id="nav-overlay__subitem--18442" class="nav-overlay__subitem">MSc research Water Resources</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/msc-research-sanitary-engineering" id="nav-overlay__subitem--153107" class="nav-overlay__subitem">MSc research Sanitary Engineering</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/available-msc-projects-water-management" id="nav-overlay__subitem--153105" class="nav-overlay__subitem">Available MSc projects Water Management</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/fieldwork" id="nav-overlay__subitem--153116" class="nav-overlay__subitem">Fieldwork</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/procedures-and-checklists" id="nav-overlay__subitem--153120" class="nav-overlay__subitem">Procedures and checklists</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/online-professional-education" id="nav-overlay__subitem--153129" class="nav-overlay__subitem">Online Professional Education</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/study/marc-van-eekeren-reisfonds" id="nav-overlay__subitem--153124" class="nav-overlay__subitem">Marc van Eekeren Reisfonds</a></li></ul></li><li id="nav-overlay__mainitem--18244" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff">Staff</a> <a href="#" data-altlabel="Menu openen" class="nav-overlay__toggle"> Menu sluiten </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/professors" id="nav-overlay__subitem--23909" class="nav-overlay__subitem">Professors</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/associate-professors" id="nav-overlay__subitem--54665" class="nav-overlay__subitem">Associate professors</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/assistant-professors-lecturers" id="nav-overlay__subitem--54666" class="nav-overlay__subitem">Assistant professors & lecturers</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/postdocs" id="nav-overlay__subitem--23911" class="nav-overlay__subitem">Postdocs</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/phd-candidate" id="nav-overlay__subitem--23941" class="nav-overlay__subitem">PhD candidate</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/researcher" id="nav-overlay__subitem--169786" class="nav-overlay__subitem">Researcher</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/support-staff" id="nav-overlay__subitem--23918" class="nav-overlay__subitem">Support staff</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/staff/emeritus-guest-researchers-visitors" id="nav-overlay__subitem--23913" class="nav-overlay__subitem">Emeritus, guest researchers & visitors</a></li></ul></li><li id="nav-overlay__mainitem--18281" data-priority="0"> <div class="nav-overlay__mainitem row"> <div class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/current">Current</a> <a href="#" data-altlabel="Menu sluiten" class="nav-overlay__toggle"> Menu openen </a> </div> </div><ul class="list-reset row nav-overlay__subitemcontainer"><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/current/news" id="nav-overlay__subitem--18288" class="nav-overlay__subitem">News</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/current/agenda" id="nav-overlay__subitem--18289" class="nav-overlay__subitem">Agenda</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/current/facts-figures-1" id="nav-overlay__subitem--193982" class="nav-overlay__subitem">Facts & figures</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/current/archive" id="nav-overlay__subitem--18290" class="nav-overlay__subitem">Archive</a></li><li class="sm-12"><a href="/en/ceg/about-faculty/departments/watermanagement/current/drinking-water-book" id="nav-overlay__subitem--34006" class="nav-overlay__subitem">Drinking Water book</a></li></ul></li><li id="nav-overlay__mainitem--18245" data-priority="0"><div class="nav-overlay__mainitem"><a href="/en/ceg/about-faculty/departments/watermanagement/contact">Contact</a></div></li><li id="nav-overlay__mainitem--24854" data-priority="0"><div class="nav-overlay__mainitem"><a href="/en/ceg/about-faculty/departments/watermanagement/vacancies">Vacancies</a></div></li><li></li></ul> <div class='language-switch'><a href="/citg/over-faculteit/afdelingen/watermanagement/onderzoek/monitoring-control-of-water-processes" title="Nederlands" lang="nl">Nederlands</a></div> <ul class="list-inline"> <li> <a href="/en/cookie-policy" title="Cookie settings" class="cookieButton btn--icon"> <svg viewBox="14 13 36 44" class="cookieButton-icon"> <circle cx="35.709" cy="22.973" fill="currentColor" r="2"/> <circle cx="41.875" cy="29.417" fill="currentColor" r="2"/> <circle cx="31.709" cy="31.417" fill="currentColor" r="2"/> <circle cx="24.001" cy="37.25" fill="currentColor" r="2"/> <circle cx="32" cy="42.292" fill="currentColor" r="2"/> <circle cx="38.875" cy="37.25" fill="currentColor" r="2"/> <path d="M32 50c-9.925 0-18-8.075-18-18 0-.505.034-1.001.074-1.494a1 1 0 0 1 1.269-.882c3.594 1.016 7.107-1.47 7.578-4.963a1 1 0 0 1 .858-.857 5.948 5.948 0 0 0 3.438-1.705 5.958 5.958 0 0 0 1.756-4.241c0-.78-.15-1.542-.447-2.266a1.002 1.002 0 0 1 .776-1.369A17.78 17.78 0 0 1 32 14c9.925 0 18 8.075 18 18s-8.075 18-18 18zM16.002 31.795A14.01 14.01 0 0 0 16 32c0 8.822 7.178 16 16 16s16-7.178 16-16-7.178-16-16-16c-.396 0-.801.019-1.233.058a7.91 7.91 0 0 1 .206 1.799 7.941 7.941 0 0 1-2.342 5.656 7.914 7.914 0 0 1-3.86 2.143c-.899 3.891-4.672 6.653-8.769 6.139z" fill="currentColor"/> </svg> </a> </li> <li> <button class="button-reset btn--icon btn-contrast js-contrastChanger" title="Contrast settings"> <span class="js-contrastChanger-label text-hide" data-highcontrasttext="Activate high contrast" data-normalcontrasttext="Activate normal contrast"> Activate high contrast </span> <svg role="presentation" class="icon-contrast"> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/contrast-icon.svg#contrast-icon"></use> </svg> </button> </li> </ul> <button class='menu menu--close button-reset js-toggle' data-target='.nav-overlay'> <span class='i-close'> <span class='text-hide'> Close menu </span> </span> </button> </div> </nav> <div class="modal"> <div class="modal__content"> <form action="/en/search" method="get" class="nav-search"> <input type="search" name="q" id="headerSearchForm-input" value="" class="autocomplete-inputField" autocomplete="off" aria-label="Search"> <button class="button-reset i-search"> <span class="text-hide">Search</span> </button> </form> </div> <button data-target="this.parent" class="menu menu--close button-reset js-modal-close"> <span class="i-close"> <span class="text-hide">Close search</span> </span> </button> </div> <div id=c398578 class="t3ce frame-type-sitetud_headerslider "> <div class="carousel" > <div class="carousel__slides" data-slick-previous="Go to previous item" data-slick-next="Go to next item"> <div class="poster poster--carousel poster-header-carousel poster-header-carousel--8186 poster-color-content--white " data-color="white"> <picture> <source media="(max-width: 37.438em)" type="image/webp" srcset="https://filelist.tudelft.nl/_processed_/4/4/csm_satellite-photo-67624_1920_5d8f41d220.webp" /> <source media="(max-width: 63.938em)" type="image/webp" srcset="https://filelist.tudelft.nl/_processed_/4/4/csm_satellite-photo-67624_1920_c13adaa22b.webp" /> <source media="(max-width: 79.938em)" type="image/webp" srcset="https://filelist.tudelft.nl/_processed_/4/4/csm_satellite-photo-67624_1920_8c530080ad.webp" /> <source media="(min-width: 80em)" type="image/webp" srcset="https://filelist.tudelft.nl/_processed_/4/4/csm_satellite-photo-67624_1920_dfbbffef4e.webp" /> <img class="placeholder-image" src="https://filelist.tudelft.nl/_processed_/4/4/csm_satellite-photo-67624_1920_78c0854777.jpg" width="1920" height="550" alt="" /> </picture> <div class="container no-spacing"> <div class="poster__content"> </div> </div> </div> </div> <div class='container no-spacing'> <div class='carousel__arrowcontainer'></div> </div> <div class="js-slick-live-region show-for-sr" aria-live="polite" aria-atomic="true" data-slick-live-label-before="Item" data-slick-live-label-after="of"> Item 1 of 1 </div> </div> </div> <main id="main"> <div class="container"> <div class="breadcrumb-bar"> <nav class="breadcrumb"> <ul class="list-inline"> <li> <a href="/en/ceg" title="Civil Engineering and Geosciences">Civil Engineering and Geosciences</a> </li> <li> <a href="/en/ceg/about-faculty" title="About the faculty">About the faculty</a> </li> <li> <a href="/en/ceg/about-faculty/departments" title="Departments">Departments</a> </li> <li> <a href="/en/ceg/about-faculty/departments/watermanagement" title="Water Management">Water Management</a> </li> <li> <a href="/en/ceg/about-faculty/departments/watermanagement/research" title="Research">Research</a> </li> <li> <a href="/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes" title="Monitoring & control of water processes">Monitoring & control of water processes</a> </li> </ul> </nav> </div> <div class="row"> <aside class="md-3"> <button class="js-toggle menuToggle" data-target=".hiddenSidebarContent" data-alttext="Close menu"> Open menu </button> <nav class="nav-aside hiddenSidebarContent"> <ul><li><a href="/en/ceg/about-faculty/departments/watermanagement">Home</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research">Research</a><ul><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/waterlab">WaterLab</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/urban-water-infrastructure">Urban Water Infrastructure</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/observation-modelling-of-water-resources">Observation & modelling of water resources</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/water-quality-treatment-reclamation">Water quality, treatment & reclamation</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes" class="is-active">Monitoring & control of water processes</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/research-projects">Research projects</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/stories-of-science">Stories of Science</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/paving-the-way-for-sustainable-water-solutions-in-european-cities">Paving the Way for Sustainable Water Solutions in European Cities</a></li></ul></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study">Study</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff">Staff</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current">Current</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/contact">Contact</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/vacancies">Vacancies</a></li></ul> </nav> </aside> <article class="md-9"> <h1> Monitoring & control of water processes </h1> <!--TYPO3SEARCH_begin--> <div id=c192006 class="t3ce frame-type-gridelements_pi1 "> <div class=" grid-background--boxed"> <div class="row grid layout-0"> <div class="xs-12 sm-6 md-8"> <div id=c192007 class="t3ce frame-type-text "> <p>Our group has been a clear pioneer and developed many new monitoring applications. The scientific success is probably best measured through the impact that DTS has had over the past ten years in environmental sciences. The Trans-African Hydro-Meteorological Observatory (TAHMO) is a more recent but even more ambitious development in which we seek to install and operate a dense network of 20,000 weather stations across sub-Saharan Africa. The computation aspects come to the fore in the eWaterCycle project, which is the first global operational forecasting model with high resolution, data assimilation, and lateral movement of water. <br><br>Better understanding of the availability of water over time and space is extremely important in a world that needs to double its food production by 2060, while reducing the total amount of water diverted for irrigation. The societal relevance is probably most acute in the Global South, which is why many of our projects are located in Asia and Africa. Large reservoirs bring benefits to people in the form of flood control, water for irrigation and electricity products. However dams can also have adverse side effects on downstream ecosystems. With more optimal operation of dams floods can be reduced, energy and agricultural production can be maximized, navigation can be enabled and environmental damage can be minimized.<br><br>Monitoring and control research in the drinking water supply was concentrated around the development of a simulator of a drinking water treatment plant for operation and training purposes. Therefore integration of models and platforms was needed and new algorithms were developed to rapidly exchange information. In addition, models were developed for the prediction of drinking water use to operate the system energy efficient. New algorithms were made to identify pipe bursts in real time with limited data and adaptive calibration, taking into account accuracy of prediction and size of the burst in relation to size of the area. <br> </p> </div> </div> <div class="xs-12 sm-6 md-4"> </div> </div> </div> </div> <!--TYPO3SEARCH_end--> <div class="socialShare row"> <div class="sm-12 sm-mt-1"> <div class="socialShare-items"> <h2 class="h4">Share this page:</h2> <ul class="sharing"> <li> <a class="btn--icon i-facebook" href="https://www.facebook.com/sharer/sharer.php?u=https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes/" target="_blank"> <span class="text-hide">Facebook</span> </a> </li> <li> <a class="btn--icon i-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes/&title=Monitoring%20%26%20control%20of%20water%20processes&summary=&source=tudelft.nl;" target="_blank"> <span class="text-hide">Linkedin</span> </a> </li> <li> <a class="btn--icon i-twitter" href="https://twitter.com/share?url=https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes/&text=Monitoring%20%26%20control%20of%20water%20processes" target="_blank"> <span class="text-hide">Twitter</span> </a> </li> <li> <a class="btn--icon i-mail" href="mailto:?subject=I%20would%20like%20to%20share%20this%20page%20with%20you&body=I%20would%20like%20to%20show%20you%20this%20page%20https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes/"> <span class="text-hide">Email</span> </a> </li> <li class="hide-for-medium"> <a class="btn--icon i-whatsapp" href="whatsapp://send?text=Monitoring%20%26%20control%20of%20water%20processes%20https://www.tudelft.nl/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes/"> <span class="text-hide">WhatsApp</span> </a> </li> </ul> </div> <a href="#" class="socialShare-navigatorShareButton btn hidden"> Share this page </a> </div> </div> </article> </div> </div> </main> <footer class="pageFooter"> <a class="js-back_to_top" href="#" title="back_to_top"> <div class="btn--icon i-arrow_down"></div> </a> <div class='container'> <div class='row'> <div class="md-6 lg-6 space"> <div class="t3ce frame-type-sitetud_socialmedialinks "> <h3 class="text-hide">Dit is het social media blok</h3> <ul class="list-inline"> <li> <a href="https://twitter.com/TUDelft_CT" target="_blank" class="btn--icon i-twitter" rel="noreferrer"> <span class="text-hide"> twitter </span> </a> </li> <li> <a href="https://www.linkedin.com/school/tu-delft-civil-engineering-geosciences/" target="_blank" class="btn--icon i-linkedin" rel="noreferrer"> <span class="text-hide"> linkedin </span> </a> </li> <li> <a href="https://www.instagram.com/ceg.tudelft/" target="_blank" class="btn--icon i-instagram" rel="noreferrer"> <span class="text-hide"> instagram </span> </a> </li> <li> <a href="https://www.youtube.com/user/FaculteitCiTG" target="_blank" class="btn--icon i-youtube" rel="noreferrer"> <span class="text-hide"> youtube </span> </a> </li> <li> <a href="https://api.whatsapp.com/send?phone=31638351565" target="_blank" class="btn--icon i-whatsapp hide-for-xxlarge" rel="noreferrer"> <span class="text-hide">whatsapp</span> </a> <a href="https://api.whatsapp.com/send?phone=31638351565" target="_blank" class="btn--icon i-whatsapp show-for-xxlarge" rel="noreferrer"> <span class="text-hide">whatsapp</span> </a> </li> </ul> </div> </div> <div class="md-6 lg-6"> <div class="row"> <div class="sm-6"> <div id=c155859 class="t3ce frame-type-text "> <p>Building 23<br> Stevinweg 1<br> 2628 CN Delft<br> Tel: + 31 15 27 89802</p> <p><a href="/en/ceg/research/stories-of-science">Stories of Science</a><br> <a href="https://map.tudelftcampus.nl/poi/civil-engineering-and-geosciences-ceg/" target="_blank" rel="noreferrer">Contact and map</a><br> <a href="/en/disclaimer">Disclaimer</a><br> <a href="/en/privacy-statement">Privacy statement</a></p> </div> </div> <div class="sm-6 right"> <div id=c282781 class="t3ce frame-type-image "> <div class="image"> <picture> <img class=" " src="https://filelist.tudelft.nl/CiTG/CiTG-gebouw-300.jpg" width="300" height="200" alt="" /> </picture> </div> </div> </div> </div> </div> </div> </div> </footer> <nav class="nav-bottom"> <div class="container no-spacing"> <a class="logo left" href="/en/"> <svg focusable="false" class="logo logo-tudelft--bottom" role="img"> <use xlink:href="#logo"></use> </svg> <span class="text-hide">Home of TU Delft</span> </a> <div class="nav-main left"> <a href="/en/cookie-policy" title="Cookie settings" class="cookieButton btn--icon"> <svg viewBox="14 13 36 44" class="cookieButton-icon"> <circle cx="35.709" cy="22.973" fill="currentColor" r="2"/> <circle cx="41.875" cy="29.417" fill="currentColor" r="2"/> <circle cx="31.709" cy="31.417" fill="currentColor" r="2"/> <circle cx="24.001" cy="37.25" fill="currentColor" r="2"/> <circle cx="32" cy="42.292" fill="currentColor" r="2"/> <circle cx="38.875" cy="37.25" fill="currentColor" r="2"/> <path d="M32 50c-9.925 0-18-8.075-18-18 0-.505.034-1.001.074-1.494a1 1 0 0 1 1.269-.882c3.594 1.016 7.107-1.47 7.578-4.963a1 1 0 0 1 .858-.857 5.948 5.948 0 0 0 3.438-1.705 5.958 5.958 0 0 0 1.756-4.241c0-.78-.15-1.542-.447-2.266a1.002 1.002 0 0 1 .776-1.369A17.78 17.78 0 0 1 32 14c9.925 0 18 8.075 18 18s-8.075 18-18 18zM16.002 31.795A14.01 14.01 0 0 0 16 32c0 8.822 7.178 16 16 16s16-7.178 16-16-7.178-16-16-16c-.396 0-.801.019-1.233.058a7.91 7.91 0 0 1 .206 1.799 7.941 7.941 0 0 1-2.342 5.656 7.914 7.914 0 0 1-3.86 2.143c-.899 3.891-4.672 6.653-8.769 6.139z" fill="currentColor"/> </svg> </a> <button class="button-reset btn--icon btn-contrast js-contrastChanger" title="Contrast settings"> <span class="js-contrastChanger-label text-hide" data-highcontrasttext="Activate high contrast" data-normalcontrasttext="Activate normal contrast"> Activate high contrast </span> <svg role="presentation" class="icon-contrast"> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/contrast-icon.svg#contrast-icon"></use> </svg> </button> <div id="__ba_panel" class="js-browse-aloud"> </div> </div> <div class="right"> <div class="nav-main"> <ul><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement">Home</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/research">Research</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/waterlab">WaterLab</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/urban-water-infrastructure">Urban Water Infrastructure</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/observation-modelling-of-water-resources">Observation & modelling of water resources</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/water-quality-treatment-reclamation">Water quality, treatment & reclamation</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/monitoring-control-of-water-processes">Monitoring & control of water processes</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/research-projects">Research projects</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/stories-of-science">Stories of Science</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/research/paving-the-way-for-sustainable-water-solutions-in-european-cities">Paving the Way for Sustainable Water Solutions in European Cities</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/study">Study</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/bachelor">Bachelor</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/master">Master</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/minor">Minor</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/msc-research-water-resources">MSc research Water Resources</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/msc-research-sanitary-engineering">MSc research Sanitary Engineering</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/available-msc-projects-water-management">Available MSc projects Water Management</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/fieldwork">Fieldwork</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/procedures-and-checklists">Procedures and checklists</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/online-professional-education">Online Professional Education</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/study/marc-van-eekeren-reisfonds">Marc van Eekeren Reisfonds</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/staff">Staff</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/professors">Professors</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/associate-professors">Associate professors</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/assistant-professors-lecturers">Assistant professors & lecturers</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/postdocs">Postdocs</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/phd-candidate">PhD candidate</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/researcher">Researcher</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/support-staff">Support staff</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/staff/emeritus-guest-researchers-visitors">Emeritus, guest researchers & visitors</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/current">Current</a><ul class="nav-main__submenu"><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/news">News</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/agenda">Agenda</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/facts-figures-1">Facts & figures</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/archive">Archive</a></li><li><a href="/en/ceg/about-faculty/departments/watermanagement/current/drinking-water-book">Drinking Water book</a></li></ul></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/contact">Contact</a></li><li class="nav-main__mainitem" data-priority="0"><a href="/en/ceg/about-faculty/departments/watermanagement/vacancies">Vacancies</a></li></ul> <a href="/citg/over-faculteit/afdelingen/watermanagement/onderzoek/monitoring-control-of-water-processes" title="Schakel over naar de Nederlandse taal" class="btn--icon btn--languageSwitch" lang="nl"> <div class="icon-languageSwitch icon-languageSwitch--en"></div> </a> <button data-target=".nav-search" class="button-reset btn--icon i-search js-modal"> <span class="text-hide">Search</span> </button> </div> </div> </div> </nav> <script> document.addEventListener('DOMContentLoaded', function() { function waitForElementToExist(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(() => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { subtree: true, childList: true, }); }); } // Wacht tot het element bestaat en voer daarna de SVG-injectie uit waitForElementToExist('#__ba_panel > .textDiv > .customText').then(element => { var baPanelIconWrapper = element; baPanelIconWrapper.innerHTML = ` <svg role="img" aria-labelledby="reachdecktitle" style="width: 100%; height: 100%;"> <title id="reachdecktitle">Spreken - Luisteren met de ReachDeck-werkbalk</title> <use xlink:href="/typo3conf/ext/tud_styling/Resources/Public/img/browse-aloud.svg#browseAloud"></use> </svg> `; }); }); </script> <!-- fix for TUD-1019 not showing icon correctly --> <script type="text/javascript" src="https://www.browsealoud.com/plus/scripts/3.1.0/ba.js" crossorigin="anonymous" integrity="sha256-VCrJcQdV3IbbIVjmUyF7DnCqBbWD1BcZ/1sda2KWeFc= sha384-k2OQFn+wNFrKjU9HiaHAcHlEvLbfsVfvOnpmKBGWVBrpmGaIleDNHnnCJO4z2Y2H sha512-gxDfysgvGhVPSHDTieJ/8AlcIEjFbF3MdUgZZL2M5GXXDdIXCcX0CpH7Dh6jsHLOLOjRzTFdXASWZtxO+eMgyQ=="></script> <script> // Dit zorgt ervoor dat de ba-panel wordt toegevoegd aan de juiste locatie window.addEventListener('DOMContentLoaded', function () { $(".nav-main.left").append($("#__ba_panel")); }); </script> <script src="/typo3conf/ext/site_tud/Resources/Public/JavaScript/dist.javascripts.c841a1eb1d.min.js" type="text/javascript"></script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--15995'), navSubItem = document.getElementById('nav-overlay__subitem--15995');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--82140'), navSubItem = document.getElementById('nav-overlay__subitem--82140');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--16000'), navSubItem = document.getElementById('nav-overlay__subitem--16000');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--82849'), navSubItem = document.getElementById('nav-overlay__subitem--82849');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--16189'), navSubItem = document.getElementById('nav-overlay__subitem--16189');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--82873'), navSubItem = document.getElementById('nav-overlay__subitem--82873');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--16188'), navSubItem = document.getElementById('nav-overlay__subitem--16188');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--83176'), navSubItem = document.getElementById('nav-overlay__subitem--83176');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--18243'), navSubItem = document.getElementById('nav-overlay__subitem--18243');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--79952'), navSubItem = document.getElementById('nav-overlay__subitem--79952');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--20038'), navSubItem = document.getElementById('nav-overlay__subitem--20038');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <script> document.addEventListener('DOMContentLoaded', function () {var navItem = document.getElementById('nav-overlay__mainitem--82154'), navSubItem = document.getElementById('nav-overlay__subitem--82154');if (navItem !== null) {navItem.classList.add('is-active');}if (navSubItem !== null) {navSubItem.classList.add('nav-overlay__subitem--active');}}); </script> <style> .pageFooter { background-image: url(https://www.tudelft.nl/typo3conf/ext/tud_styling/Resources/Public/img/torch.svg); background-repeat:no-repeat; background-position: 15% 75%; background-size: 250%; background-blend-mode: overlay; } .card--no_image {background-blend-mode: overlay;} .flameStyle1 {background-position: 80% 40% !important; background-size: 370% !important;} .flameStyle2 {background-position: 30% 35% !important; background-size: 450% !important;} .flameStyle3 {background-position: 50% 50% !important; background-size: 400% !important;} .flameStyle4 {background-position: 60% 70% !important; background-size: 500% !important;} .flameStyle5 {background-position: 30% 80% !important; background-size: 330% !important;} </style> <script> var cards = document.querySelectorAll('.card--no_image'); var i; for(var i = 0; i<cards.length; i++) { switch (i % 5) { case 0: cards[i].className += " flameStyle1"; break; case 1: cards[i].className += " flameStyle2"; break; case 2: cards[i].className += " flameStyle3"; break; case 3: cards[i].className += " flameStyle4"; break; case 4: cards[i].className += " flameStyle5"; break; } } </script> <script> window.addEventListener('DOMContentLoaded', function () { document.querySelectorAll(".logo-tudelft--top")?.forEach (x=> x.setAttribute("aria-label", "TU Delft homepage")); // add aria-label to top logo document.querySelectorAll(".logo-tudelft--bottom")?.forEach (x=> x.setAttribute("aria-label", "TU Delft homepage")); //add aria-label to bottom logo // document.getElementsByClassName("button-reset btn--icon i-search js-modal")[0].setAttribute("aria-label", "Search, Zoeken"); // add aria-label to search icon // document.getElementsByClassName("button-reset btn--icon i-search js-modal")[1].setAttribute("aria-label", "Search, Zoeken"); // add aria-label to search icon document.querySelectorAll('[class*=video--popup]')?.forEach( x=> x.setAttribute("aria-label","Play video" + ", " + x.innerText)); // add 'play video' to every videoelement with additional video-title document.querySelector(".cookieNotice")?.setAttribute("role", "dialog"); // add region to cookiestatement document.querySelector(".cookieNotice")?.setAttribute("aria-label", "Cookie statement"); // add aria-label to cookiestatement document.querySelector(".pageFooter")?.setAttribute("role", "region"); // add region to footer document.querySelector(".pageFooter")?.setAttribute("aria-label", "Footer"); // add aria-label to footer // add tabindex=-1 to pagination (...) const dots = document.querySelectorAll('ul li a'); for (let i = 0; i < dots.length; i++) { if (dots[i].textContent === '...') { dots[i].setAttribute("tabindex", "-1"); } } // add buttontitle to carousel aria-label document.querySelectorAll('.slick-dots button')?.forEach(button => { button.setAttribute('aria-label', button.innerText + ', ' + button.getAttribute('aria-label')); }); // set photogallery ARIA to hidden // document.querySelectorAll('.photoGallerySlider .slick-dots')?.forEach(ul => { // ul.setAttribute("aria-hidden","true");}) // set ARIA label for next & previous buttons document.querySelectorAll(".slick-prev")?.forEach (x=> x.setAttribute("aria-label", "Vorige / Previous")); // add aria-label to top logo document.querySelectorAll(".slick-next")?.forEach (x=> x.setAttribute("aria-label", "Volgende / Next")); // add aria-label to top logo // add 'reference' to element id //document.querySelectorAll(".frame-type-shortcut [id]").forEach((element, index) => element.id += '-reference' + index); // header sliders WCAG document.querySelectorAll('.carousel')?.forEach( x=> x.setAttribute("role","region")); document.querySelectorAll('.carousel')?.forEach( x=> x.setAttribute("aria-label","Header carousel")); document.querySelectorAll(".menu.js-toggle")?.forEach ( x=> x.setAttribute("aria-label", "Menu")); // Set ARIA label of patty menu // wis alle filters aria labels/role var list = document.querySelector(".lookup-usedFilters"); if (list && list.childElementCount !== 0) { // It has at least one element as a child list.setAttribute("role", "list"); } else if (list && list.childElementCount === 0) { list.setAttribute("role", "none"); } // fix profilecard UL var profilecard = document.querySelectorAll(".profile__contactdata"); for (i = 0; i < profilecard.length; i++) { if (profilecard[i] && profilecard[i].childElementCount !== 0) { // It has at least one element as a child profilecard[i].setAttribute("role", "list"); } else if (profilecard[i] && profilecard[i].childElementCount === 0) { profilecard[i].setAttribute("role", "none"); }} // fix aside UL var navaside = document.querySelectorAll(".nav-aside ul"); for (i = 0; i < navaside.length; i++) { if (navaside[i] && navaside[i].childElementCount !== 0) { // It has at least one element as a child navaside[i].setAttribute("role", "list"); } else if (navaside[i] && navaside[i].childElementCount === 0) { navaside[i].setAttribute("role", "none"); }} // Set aria label for to top links // Todo: remove childnode <span class="hide">To top</span> document.querySelectorAll(".csc-linkToTop .uparrow").forEach(x => x.setAttribute("aria-label", "To top")); // Set tabindex of photo gallery slider to -1 document.querySelectorAll(".photoGalleryNavSlider-item").forEach(x => x.setAttribute("tabindex", -1)) document.querySelectorAll(".slick-slide").forEach(x => x.setAttribute("tabindex", -1)) // Remove empty header in carousel document.querySelectorAll(".frame-type-sitetud_carousel h3:empty").forEach(x => x.remove()) document.querySelectorAll(".frame-type-sitetud_carousel .slick-dots").forEach(x => x.style.marginTop = "3rem") // Empty H2 in Lookup results if screen reader header is not entered document.querySelectorAll("h2.show-for-sr:empty").forEach(x => x.remove()) // Empty H2 in Lookup results if agenda__month header is not entered document.querySelectorAll(".agenda .agenda__month:empty").forEach(x => x.remove()) document.querySelectorAll(".filters-column").forEach((el, index) => { let id = `formFieldId${index}` el.querySelector("select")?.setAttribute("aria-labelledby",id) el.querySelector("span")?.setAttribute("id",id) }) }, false); const navList = document.querySelector(".nav-main ul"); if (navList && navList.children.length === 0) { navList.setAttribute("aria-hidden", "true"); } // Adding .navigation class to .nav-top and .nav-bottom to fix ARIA conformance Do page sections with the same name serve the same purpose? document.querySelectorAll('nav.nav-top, nav.nav-bottom').forEach(nav => { nav.classList.add('navigation'); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { // Zoek alle .video elementen const videoDivs = document.querySelectorAll('.video'); videoDivs.forEach(videoDiv => { // Voeg role="region" toe als het nog niet aanwezig is if (!videoDiv.hasAttribute('role')) { videoDiv.setAttribute('role', 'region'); } // Zoek de iframe binnen elke .video div const iframe = videoDiv.querySelector('iframe'); // Controleer of de src van de iframe verwijst naar youtube-nocookie if (iframe && iframe.src.includes('youtube-nocookie.com')) { // Kopieer de aria-label van de div naar de title van het iframe let ariaLabel = videoDiv.getAttribute('aria-label'); // Scrub de ongewenste delen uit de aria-label string ariaLabel = ariaLabel.replace(/Tab om naar de videospeler te gaan van /, '') .replace(/Tab to enter video player of /, ''); // Stel de scrubbed aria-label in als de title van het iframe iframe.setAttribute('title', ariaLabel); } }); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { setTimeout(function () { const galleries = document.querySelectorAll('.photoGallerySlider ul'); galleries.forEach(gallery => { // Verwijder role="tablist" van de <ul> (slick voegt dit mogelijk toe) gallery.removeAttribute('role'); gallery.setAttribute('aria-live', 'polite'); const updateAriaAttributes = () => { setTimeout(() => { const listItems = gallery.querySelectorAll('li'); listItems.forEach(item => { // Controleer of het item actief is if (item.classList.contains('slick-active')) { item.setAttribute('aria-hidden', 'false'); item.setAttribute('aria-current', 'true'); item.setAttribute('role', 'status'); // Actieve krijgt role="status" } else { item.setAttribute('aria-hidden', 'true'); item.removeAttribute('aria-current'); item.setAttribute('role', 'status'); // Inactieve krijgen role="status" } }); }, 10); // Wacht even zodat Slick klaar is met het wijzigen }; // MutationObserver voor het verwijderen van role="tablist" op de UL const observer = new MutationObserver(() => { if (gallery.getAttribute('role') === 'tablist') { gallery.removeAttribute('role'); } }); observer.observe(gallery, { attributes: true }); // Direct uitvoeren bij laden updateAriaAttributes(); // Opnieuw uitvoeren na elke slide-wissel $(gallery).on('afterChange', function() { updateAriaAttributes(); }); }); }, 250); // Eerste vertraging voor DOM-load en initiële Slick-opmaak }); </script> <script> document.addEventListener('DOMContentLoaded', () => { // Verkrijg de taal van de pagina const lang = document.documentElement.lang; // Standaard tekst voor de knoppen let prevLabelText = 'Vorige'; // Voor 'slick-prev' let nextLabelText = 'Volgende'; // Voor 'slick-next' // Als de taal Engels (VS) is, stel dan 'Previous' en 'Next' in if (lang === 'en-US') { prevLabelText = 'Previous'; nextLabelText = 'Next'; } // Functie om aria-label aan te passen const updateAriaLabels = () => { // Pas aria-label voor de 'slick-prev' knoppen document.querySelectorAll('.gallery .slick-prev').forEach(button => { button.setAttribute('aria-label', prevLabelText); }); // Pas aria-label voor de 'slick-next' knoppen document.querySelectorAll('.gallery .slick-next').forEach(button => { button.setAttribute('aria-label', nextLabelText); }); }; // Initialiseer de MutationObserver om te luisteren naar veranderingen in de DOM const observer = new MutationObserver((mutationsList, observer) => { mutationsList.forEach(mutation => { if (mutation.type === 'childList') { updateAriaLabels(); // Controleer en update aria-label wanneer knoppen worden toegevoegd } }); }); // Start de observer op de .gallery container const gallery = document.querySelector('.gallery'); if (gallery) { observer.observe(gallery, { childList: true, subtree: true }); } // Pas aria-label toe voor knoppen die al bestaan bij de eerste laadtijd updateAriaLabels(); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { // Functie om de accessibility van slides te updaten function updateSlideAccessibility() { document.querySelectorAll('.dynamicHeader-slide').forEach(slide => { const links = slide.querySelectorAll('a'); const hasLinks = links.length > 0; const isHidden = slide.getAttribute('aria-hidden') === 'true'; // Als er linkjes zijn, stel de tabindex in op basis van zichtbaarheid if (hasLinks) { links.forEach(link => { link.setAttribute('tabindex', isHidden ? '-1' : '0'); }); } else { // Laat afbeeldingen met alt="" met rust, tenzij ze expliciet verborgen moeten zijn slide.querySelectorAll('img').forEach(img => { if (isHidden) { img.setAttribute('aria-hidden', 'true'); // Alleen verbergen als de slide niet zichtbaar is } else { img.removeAttribute('aria-hidden'); // Laat de standaardgedrag van de afbeelding intact } }); } }); } // Voeg de juiste listeners toe voor Slick.js na de initiële opzet function attachSlickListeners() { document.querySelectorAll('.dynamicHeader.slick-slider').forEach(carousel => { if (!carousel.dataset.slickObserverAttached && $(carousel).hasClass('slick-initialized') && $(carousel).find('.slick-slide').length > 1) { $(carousel).on('afterChange', updateSlideAccessibility); carousel.dataset.slickObserverAttached = "true"; } }); } // Initialiseer accessibility en voeg listeners toe updateSlideAccessibility(); attachSlickListeners(); // MutationObserver om veranderingen in de slider te detecteren const observer = new MutationObserver(updateSlideAccessibility); document.querySelectorAll('.dynamicHeader').forEach(header => { observer.observe(header, { childList: true, subtree: true }); }); // Zoek de carouselcontainer met de class 'dynamicHeader' var dynamicHeader = document.querySelector('.dynamicHeader'); // Voeg role="banner" toe aan de carouselcontainer als het bestaat if (dynamicHeader) { dynamicHeader.setAttribute('role', 'banner'); } // Zoek alle slides met de class 'dynamicHeader-slide' var dynamicSlides = document.querySelectorAll('.dynamicHeader-slide'); // Voeg role="tabpanel" toe aan elke slide dynamicSlides.forEach(function(slide) { slide.setAttribute('role', 'tabpanel'); // Zoek de .dynamicHeader-slideBlocks binnen elke slide var slideBlocks = slide.querySelector('.dynamicHeader-slideBlocks'); // Voeg role="region" en aria-label toe aan de slideBlocks als ze bestaan if (slideBlocks) { slideBlocks.setAttribute('role', 'region'); slideBlocks.setAttribute('aria-label', 'Slide Content'); // Algemeen label } }); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { // Functie om lege headings om te zetten naar <p> met corresponderende class function convertEmptyHeadings(selector) { document.querySelectorAll(selector).forEach(header => { if (!header.textContent.trim()) { const p = document.createElement("p"); p.className = header.tagName.toLowerCase(); p.innerHTML = header.innerHTML; // Behoud eventuele whitespace ( ) header.replaceWith(p); } }); } // Uitvoeren voor de verschillende contexten convertEmptyHeadings(".frame-type-text h1, .frame-type-text h2, .frame-type-text h3, .frame-type-text h4, .frame-type-text h5, .frame-type-text h6"); convertEmptyHeadings(".frame-type-header h1, .frame-type-header h2, .frame-type-header h3, .frame-type-header h4, .frame-type-header h5, .frame-type-header h6"); convertEmptyHeadings(".card__content h3"); convertEmptyHeadings(".notice h1, .notice h2, .notice h3, .notice h4, .notice h5, .notice h6"); convertEmptyHeadings(".box.bg-blue_dark h1, .box.bg-blue_dark h2, .box.bg-blue_dark h3, .box.bg-blue_dark h4, .box.bg-blue_dark h5, .box.bg-blue_dark h6"); convertEmptyHeadings(".frame-type-textpic h1, .frame-type-textpic h2, .frame-type-textpic h3, .frame-type-textpic h4, .frame-type-textpic h5, .frame-type-textpic h6"); convertEmptyHeadings(".image h1, .image h2, .image h3, .image h4, .image h5, .image h6"); convertEmptyHeadings(".peoplepages h3"); convertEmptyHeadings(".profileHeader-inner h2"); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { // Selecteer de skiplinks const skiplinks = document.querySelectorAll(".skiplink"); if (skiplinks.length > 0) { // Maak een <nav> element aan const nav = document.createElement("nav"); nav.setAttribute("aria-label", "Skiplinks"); // Verplaats de skiplinks naar de <nav> skiplinks.forEach(link => { nav.appendChild(link); }); // Voeg de <nav> toe aan de body (op de juiste plek) document.body.insertBefore(nav, document.body.firstChild); } }); </script> <script> document.addEventListener("DOMContentLoaded", function () { const svgElement = document.querySelector(".magazine-navigation-logo"); if (svgElement && !svgElement.hasAttribute("aria-label")) { svgElement.setAttribute("aria-label", "E-magazine homepage"); } }); // Dit moet uiteindelijk de tekst van het magazine bevatten // </script> <script type="text/javascript"> if (window.require && window.$ && window.isLumesseApplyPage) { $.getScript('/typo3conf/ext/site_tud/Resources/Public/JavaScript/TalentLink.js') };</script> <script> document.addEventListener("DOMContentLoaded", () => { // Functie om de tekstinhoud van de knoppen te verwijderen const removeButtonText = (container) => { const buttons = container.querySelectorAll(".slick-dots button"); buttons.forEach((button) => { button.textContent = ""; // Verwijder de tekstinhoud }); }; // Check en observeer alleen binnen .sliderCentered const observeSlickDots = (container) => { const slickDots = container.querySelector(".slick-dots"); if (!slickDots) return; // MutationObserver instellen const observer = new MutationObserver(() => { removeButtonText(container); // Tekst opnieuw verwijderen bij veranderingen }); // Start observer observer.observe(slickDots, { childList: true, // Observeer toegevoegde/verwijderde knopen subtree: true, // Observeer alle child-elementen attributes: true, // Observeer wijzigingen in attributen }); // Initiale verwijderactie removeButtonText(container); }; // Zoek alle .sliderCentered-containers en start de observer per container document.querySelectorAll(".sliderCentered").forEach((slider) => { observeSlickDots(slider); }); // Fallback met vertraging voor late initiatie van Slick setTimeout(() => { document.querySelectorAll(".sliderCentered").forEach((slider) => { observeSlickDots(slider); }); }, 250); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { const waitForLeafletContainer = () => { const leafletContainer = document.querySelector('.leaflet-container'); if (leafletContainer) { const updateMarkers = () => { document.querySelectorAll('.leaflet-pane.leaflet-marker-pane img.leaflet-marker-icon').forEach((markerIcon) => { const popupContent = markerIcon.closest('.leaflet-container').querySelector('.leaflet-popup-content p'); // Alt-tekst instellen op "Location" als basis let altText = "Location"; if (popupContent) { // Zoeken naar het eerste <strong> element in de popup const firstStrong = popupContent.querySelector('strong'); if (firstStrong) { altText += ' ' + firstStrong.textContent; } } // Stel het alt-attribuut altijd in, ook als er geen sterke tekst is markerIcon.setAttribute('alt', altText); // Maak een uniek ID voor de popup-content als het nog niet bestaat if (popupContent && !popupContent.id) { popupContent.id = `popup-${Math.random().toString(36).substr(2, 9)}`; } // Stel aria-labelledby in op de marker if (popupContent) { markerIcon.setAttribute('aria-labelledby', popupContent.id); } }); }; updateMarkers(); const observer = new MutationObserver(() => { updateMarkers(); }); observer.observe(leafletContainer, { childList: true, subtree: true }); } else { setTimeout(waitForLeafletContainer, 100); } }; waitForLeafletContainer(); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { // Functie voor Scenario 1 (persoon met afbeelding, waar de link een foto bevat) function addAriaToProfileLinks() { let profileLinks = document.querySelectorAll('a.hoverableBlock-imageWrap'); profileLinks.forEach((link) => { // Zoek de afbeelding binnen de link let img = link.querySelector('img'); if (img) { // Haal de alt-tekst van de afbeelding op let altText = img.getAttribute('alt'); // Als er geen alt-tekst is, behandel het als een placeholder if (!altText || altText.trim() === "") { let href = link.getAttribute('href'); let labelText = "Profile link to " + href.split('?')[0].split('/').pop(); // Haal het laatste gedeelte van de URL link.setAttribute('aria-label', labelText); } else { // Als er een alt-tekst is, stel aria-labelledby in naar het id van de afbeelding img.setAttribute('id', 'image-' + Date.now()); // Geef een unieke ID link.setAttribute('aria-labelledby', img.id); } } else { // Als er geen afbeelding is, voeg dan aria-label toe gebaseerd op de href let href = link.getAttribute('href'); let labelText = "Profile link to " + href.split('?')[0].split('/').pop(); // Haal het laatste gedeelte van de URL link.setAttribute('aria-label', labelText); } }); } // Voeg aria-label of aria-labelledby toe voor Scenario 1 addAriaToProfileLinks(); }); </script> <script> document.addEventListener("DOMContentLoaded", function () { let imageDivs = document.querySelectorAll('.image'); let pageLanguage = document.documentElement.lang || 'en-US'; // Bepaal de juiste prefix op basis van de taalinstelling let linkPrefix = (pageLanguage === 'nl-NL') ? 'Link naar ' : 'Link to '; let enlargePrefix = (pageLanguage === 'nl-NL') ? 'Klik om afbeelding te vergroten: ' : 'Click to enlarge the image: '; imageDivs.forEach(function (imageDiv, index) { let link = imageDiv.querySelector('a[href]'); let img = link ? link.querySelector('img') : null; let altText = img ? img.getAttribute('alt') : null; // Bepaal het juiste aria-label let ariaText = link.classList.contains('image-enlarge') ? enlargePrefix + altText : linkPrefix + altText; link.setAttribute('aria-label', ariaText); }); }); </script> <style> .frame-type-text ul li a, .frame-type-sitetud_notification ul li a { display: inline-block; min-height: 28px; } .contenttable a {display: inline-block; min-height: 28px;} .nav-inpage {line-height:1.67rem;} </style> <script> document.addEventListener('DOMContentLoaded', function () { // Functie om aria-hidden en tabindex correct in te stellen function updateSliderAccessibility() { const slides = document.querySelectorAll('.photoGalleryNavSlider .photoGalleryNavSlider-item'); slides.forEach(slide => { const isCurrent = slide.classList.contains('slick-current'); const isActive = slide.classList.contains('slick-active'); const isCloned = slide.classList.contains('slick-cloned'); // Correcte tabindex en aria-hidden toepassen if (isCurrent) { slide.setAttribute('tabindex', '0'); slide.setAttribute('aria-hidden', 'false'); } else if (isActive) { slide.setAttribute('tabindex', '-1'); slide.setAttribute('aria-hidden', 'true'); } else if (isCloned) { slide.setAttribute('tabindex', '-1'); slide.setAttribute('aria-hidden', 'true'); } else { slide.setAttribute('tabindex', '-1'); slide.setAttribute('aria-hidden', 'true'); } // Voor picture-elementen, stel ook aria-hidden in const picture = slide.querySelector('picture'); if (picture) { picture.setAttribute('aria-hidden', slide.getAttribute('aria-hidden')); } }); } // MutationObserver om te reageren op veranderingen in de slider const observer = new MutationObserver(() => { updateSliderAccessibility(); }); // Start observeren van veranderingen in de slider const slider = document.querySelector('.photoGalleryNavSlider'); if (slider) { observer.observe(slider, { childList: true, // Observeer toevoegingen/verwijderingen van slides subtree: true, // Observeer ook onderliggende elementen }); } // Initialiseer de toegankelijkheid bij DOM-load updateSliderAccessibility(); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { // Zoek alle tr's in de tabel const rows = document.querySelectorAll('tr'); rows.forEach(function(row, index) { // Controleer of de tr geen kinderen heeft met inhoud const hasContent = Array.from(row.children).some(function(cell) { // Kijk of een cellen tekst of ander inhoud heeft return cell.textContent.trim() !== "" || cell.innerHTML.trim() !== ""; }); // Als de rij geen inhoud heeft, markeer deze dan als aria-hidden if (!hasContent) { row.setAttribute('aria-hidden', 'true'); // Markeer de rij als verborgen } }); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { const labels = { "nav-top": "Top navigation", "nav-bottom": "Bottom navigation", "breadcrumb": "Breadcrumb", "nav-tab": "Tab navigation", "nav-aside": "Side navigation", "nav-carousel": "Quick link navigation" }; Object.entries(labels).forEach(([className, label]) => { document.querySelectorAll(`nav.${className}`).forEach(nav => { nav.setAttribute("aria-label", label); }); }); }); </script> <script> document.addEventListener("DOMContentLoaded", () => { // Zoek naar alle .frame-type-lookup_results elementen document.querySelectorAll('.frame-type-lookup_results').forEach(frame => { // Zoek binnen de frame naar elke .row frame.querySelectorAll('.row').forEach(row => { // Controleer of er een aria-labelledby attribuut aanwezig is op de .row const ariaLabelledBy = row.getAttribute('aria-labelledby'); const srLabel = row.querySelector('.show-for-sr'); // Zoek naar de .show-for-sr binnen de .row const contentSlider = row.querySelector('.content-slider'); // Zoek naar de .content-slider binnen de .row // Controleer of alle condities voldaan zijn: if (ariaLabelledBy && srLabel && contentSlider) { // Verwijder aria-labelledby van de .row row.removeAttribute('aria-labelledby'); } }); }); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.powermail_field label input[aria-required="true"]').forEach(input => { input.removeAttribute('aria-required'); }); }); </script> <script> document.addEventListener('DOMContentLoaded', () => { const observer = new MutationObserver(() => { const carouselFrames = document.querySelectorAll('.frame-type-sitetud_carousel'); carouselFrames.forEach(frame => { // Zoek naar buttons die dieper genest zijn binnen de container const buttons = frame.querySelectorAll('button[data-role="none"]'); buttons.forEach(button => { const span = button.querySelector('span'); if (span) { const text = span.textContent.trim(); button.setAttribute('aria-label', text); // Stel aria-label in button.setAttribute('title', text); // Stel title in } }); }); // Stop de observer als alle relevante buttons zijn verwerkt const totalButtons = document.querySelectorAll('.frame-type-sitetud_carousel button[data-role="none"]').length; if (totalButtons > 0) { observer.disconnect(); } }); // Start observer op de hele body observer.observe(document.body, { childList: true, subtree: true }); }); </script> </body> </html>